Freedom251 › Debugging Software
rr

What rr is
rr is a free, open-source Linux debugging tool that records application executions and replays them deterministically. During replay, developers can move backward under gdb, including to breakpoints and data watchpoints, to investigate how a program reached a particular state. It can record and replay multi-process workloads, including entire containers, and its traces are described as durable, compact, and portable between machines. rr supports the standard gdb server interface and can also present the gdb command-line interface. The project lists C, C++, and Go among supported languages, with Firefox, Chrome, QEMU, LibreOffice, and Go programs as application examples. IDEs known to work with rr include Visual Studio Code, CLion, QtCreator, Eclipse, Emacs GUD/gdb-mi, NeoVim, gdbgui, and Seer. The project lists Linux kernel 4.7 or later and supported Intel, AMD, or AArch64 processors as requirements. Installation instructions cover Fedora and Ubuntu packages, with a source build recommended if packages do not work. rr emulates a single-core machine, cannot record processes sharing memory outside the recording tree, and does not support every system call.
Who it suits
rr suits Linux developers, particularly those working in C, C++, or Go, who need to replay executions and debug backward. It can fit workflows using gdb or one of the listed IDEs that work with rr.
What it does well
- Replays recorded executions deterministically.
- Supports reverse execution to breakpoints and data watchpoints.
- Can record multi-process workloads and entire containers.
- Works with gdb and several listed IDEs.
- Free and open source.
What to know first
- Requires Linux kernel 4.7 or later.
- Emulates a single-core machine.
- Cannot record certain processes sharing memory outside its recording tree.
- Does not support every system call.
Limits
rr emulates a single-core machine, cannot record processes that share memory with processes outside the recording tree and lacks support for every system call. Recording overhead varies by workload.
Getting started
- Open the rr project website
- Install the Fedora or Ubuntu package
- Build rr from source if packages do not work
- Use rr with gdb or a listed compatible IDE
- Confirm your Linux kernel and processor meet the requirements
Verdict
rr offers time-travel debugging for supported Linux workloads, including backward execution through gdb. Check its kernel, processor, shared-memory, and system-call constraints against the workload before adopting it.
Questions
Is rr free?
Yes. rr is free and open source.
Which operating systems does rr support?
The target platform is Linux, with a Linux kernel requirement of 4.7 or later.
Which languages are supported?
The listed supported languages are C, C++ and Go.
Can rr debug backward?
Yes. Reverse execution under gdb can move to breakpoints and data watchpoints.
Which IDEs work with rr?
The project lists Visual Studio Code, CLion, QtCreator, Eclipse, Emacs GUD/gdb-mi, NeoVim, gdbgui and Seer as known to work.
Where can users get help?
The project directs questions to its mailing list and the #rr channel on chat.mozilla.org.
Facts from rr's own pages
- Community support
- The site directs users to the mailing list and #rr on chat.mozilla.org for questions. · rr-project.org, 4 Oct 2026
- Development
- The repository says rr originated at Mozilla and development is sponsored by Pernosco. · github.com, 4 Oct 2026
- GDB interface
- rr implements the standard gdb server interface and can also present the gdb command-line interface. · github.com, 4 Oct 2026
- Hardware requirements
- The repository lists supported Intel Nehalem-or-later, certain AMD Zen-or-later, and certain AArch64 CPUs, including Apple Silicon M-series. · github.com, 4 Oct 2026
- IDE integrations
- The IDE guide lists Visual Studio Code, CLion, QtCreator, Eclipse, Emacs GUD/gdb-mi, NeoVim, gdbgui, and Seer as known to work with rr. · github.com, 4 Oct 2026
- IDE support
- The project lists Visual Studio Code, CLion, QtCreator, Eclipse, emacs GUD/gdb-mi, NeoVim, gdbgui, and Seer as known to work. · github.com, 10 Oct 2026
- Installation
- The site provides Fedora and Ubuntu package installation instructions and recommends building from source if packages do not work. · rr-project.org, 4 Oct 2026
- Integrations
- rr works with gdb scripting and IDEs that support GUI debugging through gdb or gdbserver. · rr-project.org, 10 Oct 2026
- Intended users
- The project describes rr as aspiring to be a primary C/C++ debugging tool for Linux and says it is used by developers to fix bugs. · rr-project.org, 10 Oct 2026
- Kernel requirement
- The repository lists Linux kernel 4.7 or later as a system requirement. · github.com, 4 Oct 2026
- Limitations
- rr emulates a single-core machine, so parallel programs incur the slowdown of running on one core. · rr-project.org, 10 Oct 2026
- Performance
- Recording overhead depends on workload; the site reports slowdowns down to 1.2x on Firefox test suites and lower overhead for mostly single-threaded programs than competing systems it knows of. · rr-project.org, 10 Oct 2026
- Purpose
- rr records, replays, and debugs application executions deterministically. · rr-project.org, 10 Oct 2026
- Reverse execution
- rr provides reverse execution under gdb, including reverse execution to breakpoints and data watchpoints. · rr-project.org, 10 Oct 2026
- Support
- The project directs users with questions to its mailing list or the #rr channel on chat.mozilla.org. · rr-project.org, 10 Oct 2026
- Supported applications
- The site names Firefox, Chrome, QEMU, LibreOffice, and Go programs as examples of applications rr can record and replay. · rr-project.org, 10 Oct 2026
- System requirements
- rr requires a reasonably modern x86 CPU or certain ARM CPUs, and its README specifies Linux kernel and CPU architecture requirements. · github.com, 10 Oct 2026
- Trace portability
- The project describes rr traces as durable, compact, and portable between machines. · rr-project.org, 10 Oct 2026
- Workloads
- rr supports recording and replaying multi-process workloads, including entire containers. · rr-project.org, 10 Oct 2026
Where rr stands on Freedom251
- Debugging Software#28 of 30
- Debuggers#27 of 27