github.devotd.
NewDeveloper tools

rr-debugger/rr 5.10.0 — Record-and-replay reverse debugger

rr-debugger/rr is a C++ tool that records and replays the process and thread execution of an application so it can be analyzed in reverse in gdb, and its latest release is 5.10.0.

Repositoryrr-debugger/rr ↗

rr-debugger/rr is a C++ tool that records and replays the process and thread execution of an application so it can be analyzed in reverse in gdb, and its latest release is 5.10.0.

GitHub description: Record and Replay Framework

stars
★ 10.7K
Forks
665
Language
C++
License
NOASSERTION
Latest release
5.10.0
Read original source ↗View on GitHub ↗

rr-debugger/rr is a tool that records and replays the process and thread tree execution of applications published on GitHub, for debugging. The repository describes itself as a Record and Replay Framework and is written in C++. The latest release is 5.10.0, but the available information lists no changes for this version, so what is different cannot be known.

What the tool does is record an execution as it happens and then rewind it in gdb. A reproducible execution record can be replayed and the same point viewed over and over, and it is possible to move backwards to where the problem occurred to narrow down the cause. Reverse execution retraces the path a program has taken backwards, letting you inspect the state right before a bug appears. The README says rr is a lightweight tool that extends gdb to support efficient reverse execution, and that it helps debugging when combined with standard gdb/x86 features that watch memory access like hardware data watchpoints. The repository started on August 25, 2011 and has now collected 10710 stars.

The license, however, is only recorded as NOASSERTION, so the actual terms of use are unknown. The available information contains no benchmark figures showing reverse execution performance, and no technology, novelty or quality scores. The momentum score comes out low at 1.1 on a 10-point scale. Until performance comparisons and usage terms are confirmed, it is worth trying only when reverse debugging is genuinely needed.