rr README

The project's README from github.com/rr-debugger/rr. As one markdown file: README.md.

Overview

Build and test status

rr is a lightweight tool for recording, replaying and debugging execution of applications (trees of processes and threads). Debugging extends gdb with very efficient reverse-execution, which in combination with standard gdb/x86 features like hardware data watchpoints, makes debugging much more fun. More information about the project, including instructions on how to install, run, and build rr, is at https://rr-project.org. The best technical overview is currently the paper Engineering Record And Replay For Deployability: Extended Technical Report.

Or go directly to the installation and building instructions.

Please contribute! Make sure to review the pull request checklist before submitting a pull request.

If you find rr useful, please add a testimonial.

rr development is sponsored by Pernosco and was originated by Mozilla.

System requirements

rr (rr-debugger/rr)

debugger
Searching Database…

10.7K ·GitHub
What is this?rr is a lightweight tool that records the execution of an application — entire trees of processes and threads — and lets you replay and debug that recording.
So do I debug with rr instead of gdb, or alongside it?Alongside: rr extends gdb, so you record a run once and then debug the replay in gdb, which gains very efficient reverse-execution on top of standard features.
What kind of machine and OS does it need to run?Linux with kernel 4.7 or newer and a supported CPU: Intel Nehalem (2010) or later, certain AMD Zen or later processors, or certain AArch64 microarchitectures.
Can I use it on macOS or Windows too?No, rr is Linux-only. Even the Apple Silicon M-series chips mentioned in the README are supported as AArch64 hardware under rr's Linux requirements, not on macOS.
Can I run it inside a VM or a cloud instance?Yes, as a VM guest, as long as the VM virtualizes hardware performance counters: some VMware, KVM, AWS and GCP configurations are known to work, while no Xen setup is.
What does reverse-execution actually give me when chasing a bug?You replay the recording in gdb and can run backwards to reach the cause of a failure, while hardware data watchpoints show where memory changed — the README says this combination makes debugging much more fun.
Does it work with multithreaded programs?Yes — rr records and replays whole trees of processes and threads, so multithreaded applications are exactly what it is built for.
Is there a deeper technical writeup on how rr works?Yes — the README points to the paper 'Engineering Record And Replay For Deployability: Extended Technical Report' as the best technical overview of the project.
Size
26.6 MB
Stars
10.7K
Age
15y
Commits · 90 Days