Hubbry Logo
search button
Sign in
Rr (debugging)
Rr (debugging)
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
Rr (debugging)
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the Rr (debugging) Wikipedia article. Here, you can discuss, collect, and organize anything related to Rr (debugging). The purpose of the hub is to connect peo...
Add your contribution
Rr (debugging)
rr
Repository
Websiterr-project.org Edit this on Wikidata

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]