rr
Websiterr-project.org Edit this on Wikidata
Repository

In computing, rr is a debugging tool for Linux designed to record and replay program execution. During the replay phase, rr provides an enhanced gdb debugging experience that supports reverse execution.[1]

rr was originally developed by Mozilla to debug Mozilla Firefox on commodity hardware and software.[2] rr is now widely used outside Mozilla and capable of debugging software such as Google Chrome, QEMU, and LibreOffice.[3] rr is free software.[4]

Design

edit

During the recording phase, rr records all inputs to a Linux process group from the kernel, as well as nondeterministic CPU effects (such as rdtsc). These inputs are logged to disk and become the "trace". Once the trace is recorded, it can be replayed as many times as desired and all state will be reproduced exactly. During replay rr will act as a gdbserver providing a gdb experience capable of reverse-execution. Because a bug can be replayed over and over again, rr enables new methods of debugging issues that are very difficult to solve with traditional debuggers.[4]

rr's design is documented in the paper Lightweight User-Space Record And Replay, with more details in Engineering Record And Replay For Deployability.

See also

edit

References

edit
  1. ^ "rr 4.0 Released With Reverse Execution".
  2. ^ "Introducing rr".
  3. ^ "rr: lightweight recording & deterministic debugging". rr-project.org.
  4. ^ a b "rr-debugger/rr". GitHub. 24 December 2022.
edit

📚 Artikel Terkait di Wikipedia

Debugging

In engineering, debugging is the process of finding the root cause, workarounds, and possible fixes for bugs. For software, debugging tactics can involve

RR

Route reflector, a Border Gateway Protocol configuration rr (debugging), a record and replay debugger for userspace Linux programs Resurrection Remix OS, a

List of debuggers

DynamoRIO-based memory debugger Dynamic debugging technique (DDT), and its octal counterpart Octal Debugging Technique FusionDebug — interactive debugger for Adobe

Record and replay debugging

Record and replay debugging technology is often fundamental to reverse debugging and time travel debugging. GDB (GNU) LiveRecorder (Undo) rr (Mozilla) TotalView's

Time travel debugging

Time travel debugging or time traveling debugging is the process of stepping back in time through source code to understand what is happening during execution

Data lineage

exclusive replay. Another use of replay in debugging involves replaying bad inputs for stepwise debugging (called selective replay). Current approaches

Sender Policy Framework

name SHOULD have SPF records of both RR types". The proposed standard, RFC 7208, says "use of alternative DNS RR types was supported in SPF's experimental

High-Level Data Link Control

first byte set (1). TEST A TEST command is simply a ping command for debugging purposes. The payload of the TEST command is returned in the TEST response