A lightweight, cross-platform C/C++ and GNU Assembly IDE built on Qt, successor to Dev-C++ 7.
rr-debugger/rr
A lightweight Linux tool that records program execution and replays it deterministically, adding reverse execution to gdb.
- Stars
- 10,734
- Forks
- 666
- Open issues
- 477
- Last commit
- 5 days ago
What is it?
rr records the execution of applications, including trees of processes and threads, and lets you replay that recording repeatedly under gdb. Because a replay reproduces the same execution, you can step backwards, set breakpoints on earlier events, and inspect state at any point in a past run. This makes it practical to chase down nondeterministic bugs that are hard to reproduce.
The debugger experience extends gdb rather than replacing it. Standard gdb features such as hardware data watchpoints remain available during replay, and the reverse-execution commands are added on top. The project is written in C++ and targets Linux.
rr depends on specific hardware and kernel support. It requires Linux kernel 4.7 or later and certain Intel, AMD Zen, or AArch64 CPUs, and it can run in VM guests that virtualize hardware performance counters.
Key features
- 01Records execution of multi-process, multi-threaded applications for later replay.
- 02Supports reverse execution commands inside gdb.
- 03Keeps gdb hardware data watchpoints usable during replay.
- 04Replays recordings deterministically, so a failing run can be examined repeatedly.
- 05Runs on Linux with supported Intel, AMD Zen, and AArch64 CPUs.
Use cases
- Debugging intermittent crashes or race conditions that do not reproduce on demand.
- Stepping backwards from a failure to find the instruction that caused a bad value.
- Investigating bugs in large multi-process or multi-threaded Linux programs.
Quick start
- 1
Read the installation and building instructions on the project wiki
- 2
Confirm your system meets the requirements (Linux kernel 4.7 or later, supported Intel, AMD Zen or AArch64 CPU)
Things to know
- Linux only, and it requires specific supported CPUs or a VM that exposes hardware performance counters.
- The license is listed as NOASSERTION, so check the repository's license terms before use.
Topics
FAQ
- What is rr?
- A lightweight Linux tool that records program execution and replays it deterministically, adding reverse execution to gdb. rr records the execution of applications, including trees of processes and threads, and lets you replay that recording repeatedly under gdb. Because a replay reproduces the same execution, you can step backwards, set breakpoints on earlier events, and inspect state at any point in a past run. This makes it practical to chase down nondeterministic bugs that are hard to reproduce.
- Is rr free to use? What license does it have?
- rr is open source under the Other license. Check the license terms before using it in commercial products.
- Is rr still maintained?
- Actively maintained. The last commit to rr was on Nov 2, 2026.
- What can I use rr for?
- Debugging intermittent crashes or race conditions that do not reproduce on demand. Stepping backwards from a failure to find the instruction that caused a bad value. Investigating bugs in large multi-process or multi-threaded Linux programs.
- How do I install rr?
- Read the installation and building instructions on the project wiki Confirm your system meets the requirements (Linux kernel 4.7 or later, supported Intel, AMD Zen or AArch64 CPU)
- Where can I get rr?
- The source code and installation instructions are on GitHub: https://github.com/rr-debugger/rr
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Python extension that adds an enhanced, exploit-development-oriented interface to GDB for x86, ARM, MIPS, PowerPC and SPARC.
A native, user-mode, multi-process graphical debugger for local x64 debugging on Windows and Linux, currently in alpha.
A debugger for the Go programming language, designed to be simple to invoke and use while staying out of the way.
A free Windows tool for monitoring system resources, inspecting processes, debugging software and spotting malware, a successor to Process Hacker.
Unofficial continuation of dnSpy, a debugger and editor for .NET and Unity assemblies that works without source code.