## rr - Developed by [[Mozilla]] - Main page: [rr-project.org](https://rr-project.org/) - Main repo: [rr-debugger/rr](https://github.com/rr-debugger/rr) - (2014) [Introductory blog post](https://robert.ocallahan.org/2014/03/introducing-rr.html) ## Main page rr aspires to be your primary C/C++ debugging tool for Linux, replacing — well, enhancing — gdb. You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time. rr also provides efficient reverse execution under gdb. Set breakpoints and data watchpoints and quickly reverse-execute to where they were hit. rr works on real applications and is used by many developers to fix real bugs. It makes debugging hard bugs much easier, but also speeds up debugging of easy bugs. ### rr features: - Low overhead compared to other similar tools, especially on mostly-single-threaded workloads - Supports recording and replay of all kinds of applications: Firefox, Chrome, QEMU, LibreOffice, Go programs, ... - Record, replay and debug multiple-process workloads, including entire containers - Works with gdb scripting and [IDE integration](https://github.com/rr-debugger/rr/wiki/Using-rr-in-an-IDE) - [Durable](http://robert.ocallahan.org/2017/06/new-rr-pack-command.html), [compact](http://robert.ocallahan.org/2017/07/selecting-compression-algorithm-for-rr.html) traces that can be [ported](http://robert.ocallahan.org/2017/09/rr-trace-portability.html) between machines - [_Chaos mode_](http://robert.ocallahan.org/2016/02/introducing-rr-chaos-mode.html) to make intermittent bugs more reproducible ## Resources ### (Philip's notes) [rr with rust](https://phlip9.com/notes/lang/rust/rr%20with%20rust/) ### [Run rr in Docker](https://github.com/rr-debugger/rr/wiki/Docker) ## General - (PR #2367) [Appears to support LLDB as a client](https://github.com/rr-debugger/rr/pull/2367) - [Usage instructions](https://github.com/vadimcn/vscode-lldb/blob/v1.5.0/MANUAL.md#reverse-debugging) (but only for VS-code) - (Issue #2078) [Original issue discussing whether to support LLDB](https://github.com/rr-debugger/rr/issues/2078) - (Issue #2335) [Not supported on macOS](https://github.com/rr-debugger/rr/issues/2335)