rr is a deterministic record and replay framework and reverse debugger for Linux processes. It provides a deterministic execution environment that captures program execution, allowing bugs and crashes to be reproduced exactly through replay.
The tool enables reverse program execution, allowing a developer to move the program counter backward through recorded history to trace a bug from its effect back to its source. It utilizes a recording mechanism that ensures a process run can be replayed with identical memory and register states.
The framework covers low-level software analysis and native application debugging. It supports the use of data breakpoints to monitor memory locations during replay and identifies the root causes of memory corruption and timing issues.
A containerized build process is provided for consistent compilation of the tool, including support for Android tool compilation.