rr icon indicating copy to clipboard operation
rr copied to clipboard

Record and Replay Framework

Overview

Build 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

  • Linux kernel ≥ 3.11 is required (for PTRACE_SETSIGMASK).
  • rr currently requires either:
    • An Intel CPU with Nehalem (2010) or later microarchitecture.
    • Certain AMD Zen or later processors (see https://github.com/rr-debugger/rr/wiki/Zen)
    • Certain AArch64 microarchitectures (e.g. ARM Neoverse N1 or the Apple Silicon M-series)
  • Running in a VM guest is supported, as long as the VM supports virtualization of hardware performance counters. (VMware and KVM are known to work; Xen does not.)