Scroll to navigation

RR(1) User Commands RR(1)

NAME

rr - record and replay application execution

SYNOPSIS

rr [ OPTION] (record|replay|dump) [OPTION]... [ARG]...

DESCRIPTION

Common options
-c, --checksum={on-syscalls,on-all-events}|FROM_TIME
compute and store (during recording) or read and verify (during replay) checksums of each of a tracee's memory mappings either at the end of all syscalls (`on-syscalls'), at all events (`on-all-events'), or starting from a global timepoint FROM_TIME
-d, --dump-on=<SYSCALL_NUM|-SIGNAL_NUM>
dump memory at SYSCALL or SIGNAL to the file `[trace_dir]/[tid].[time]_{rec,rep}': `_rec' for dumps during recording, `_rep' for dumps during replay
-f, --force-enable-debugger
always allow emergency debugging, even when it doesn't seem like a good idea, for example if stderr isn't a tty.
-k, --check-cached-mmaps
verify that cached task mmaps match /proc/maps
-m, --mark-stdio
mark stdio writes with [rr.<EVENT-NO>], where EVENT-NO is the global trace time at which the write occures.
-t, --dump-at=TIME
dump memory at global timepoint TIME
-u, --cpu-unbound
allow tracees to run on any virtual CPU. Default is to bind to CPU 0. This option can cause replay divergence: use with caution.
-v, --verbose
log messages that may not be urgently critical to the user
-w, --wait-secs=<NUM_SECS> wait NUM_SECS seconds just after startup,
before initiating recording or replaying
Syntax for `record'
rr record [OPTION]... <exe> [exe-args]...
-b, --force-syscall-buffer force the syscall buffer preload library
to be used, even if that's probably a bad idea
-c, --num-cpu-ticks=<NUM>
maximum number of 'CPU ticks' (currently retired conditional branches) to allow a task to run before interrupting it
-e, --num-events=<NUM>
maximum number of events (syscall enter/exit, signal, CPU interrupt, ...) to allow a task before descheduling it
-i, --ignore-signal=<SIG>
block <SIG> from being delivered to tracees. Probably only useful for unit tests.
-n, --no-syscall-buffer
disable the syscall buffer preload library even if it would otherwise be used
Syntax for `replay'
rr replay [OPTION]... <trace-dir>
-a, --autopilot
replay without debugger server
-f, --onfork=<PID>
start a debug server when <PID> has been fork()d, AND the target event has been reached.
-g, --goto=<EVENT-NUM>
start a debug server on reaching <EVENT-NUM> in the trace. See -m above.
-p, --onprocess=<PID>
start a debug server when <PID> has been exec()d, AND the target event has been reached.
-q, --no-redirect-output
don't replay writes to stdout/stderr
-s, --dbgport=<PORT>
only start a debug server on <PORT>; don't automatically launch the debugger client too.
Syntax for `dump`
rr dump [OPTIONS] <trace_dir> <event-spec>...
Event specs can be either an event number like `127', or a range like `1000-5000'. By default, all events are dumped. -r, --raw dump trace frames in a more easily
machine-parseable format instead of the default human-readable format
A command line like `rr ( -h|--help|help)...' will print this message.
April 2014 rr - record and replay application executions