Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

55 lines (35 sloc) 1.874 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:
http://sourceforge.net/projects/perfmon2/files/libpfm4/libpfm-4.3.0.tar.gz/download
(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.