Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (35 sloc) 1.83 KB
Installation guide for rr
A) Hardware/Software requirements
The current version of rr requires a Linux kernel version 2.6.39 and larger.
To enable PEBS support for the hardware performance counters (HPC) a kernel
version >= 3.0 is required. Furthermore, rr does not support x86_64. rr was
developed under Ubuntu 11.04.
rr requires two additional libraries:
(1) libpfm-4.3.0: The library can be downloaded from:
(2) libdisasm-dev
B) Building
rr is developed with Eclipse CDT plugin. You can import the project directly into
Eclipse. Eclipse then generates a makefile which you can use to build the project.
C) Usage
Before calling either the recorder or the replayer make sure that address space
randomization is disabled. You can do this by e.g., with the following command:
sysctl -w kernel.randomize_va_space=0
Also, we need to be able to write to /proc/$pid/mem. This can usually be
achieved with the following command:
sysctl -w kernel.yama.ptrace_scope=0
Typing rr --record /path/to/binary invokes the recorder. The recorder
creates a path in the current directory which contains the trace file(s).
To replay the application, type rr --replay /path/to/trace. The checks the
replayed execution corresponds to the recorded execution are quite rigorous
at the moment. This is why the '/path/to/binary' should have the exact length
as '/path/to/trace'. You can do this easily by creating a symbolic link with
the appropriate length. Pretty hacky :-)
Note that talking to particular kernel drivers (by ioctl(...)) requires the
rr to have knowledge about what the driver is doing. For example, if you
record GUI applications that make use a grapphics driver with 3d-support
rr will fail.
Jump to Line
Something went wrong with that request. Please try again.