Jump to content

rr (debugging)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Nick Number (talk | contribs) at 15:17, 10 January 2018 (fixed text formatting; References section). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


In computing, rr is a debugging tool 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

During the recording phase, rr records all inputs to a Linux process group from the kernel, as well as nondeterminstic 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.[5]

See also

References