Rr: Difference between revisions

From miki
Jump to navigation Jump to search
Line 45: Line 45:
During replay, rr behaves likes gdb, with the usual reverse debugging command.
During replay, rr behaves likes gdb, with the usual reverse debugging command.
See referenced links for more information.
See referenced links for more information.

== Troubleshoot ==
=== Potential issues in VM ===
* See this bug in VMWare [https://robert.ocallahan.org/2015/11/rr-in-vmware-solved.html]. Fix is to add <code>monitor_control.disable_hvsim_clusters = true</code>.
* See this bug in Xen [https://lists.xen.org/archives/html/xen-devel/2017-07/msg02242.html].
* Discuss on rr in [https://news.ycombinator.com/item?id=25042827 Hacker News].

Revision as of 14:11, 10 November 2020

rr is the Record and Replay Framework, developped by Mozilla, and is a replacement for and powerful enhancement of gdb.

References

Install and configuration

On Debian, rr is available as a package:

sudo apt install rr

rr also requires the linux performance analysis package for the current kernel.

# Install linux perf
sudo apt install linux-perf-4.19

# Enable perf for user land (temporary)
sudo sysctl kernel.perf_event_paranoid=0

See rr usage page for more performance tuning and setting perf flag permanently.

Example of use

Start recording the application:

rr record my_app

Then replay it with:

rr replay

In case the application fires several processes, we can tell rr to fast-forward until child is forked. First we use rr ps to get the list of recorded processes, then we start rr with -f:

rr ps
rr replay -f 12345

During replay, rr behaves likes gdb, with the usual reverse debugging command. See referenced links for more information.

Troubleshoot

Potential issues in VM

  • See this bug in VMWare [1]. Fix is to add monitor_control.disable_hvsim_clusters = true.
  • See this bug in Xen [2].
  • Discuss on rr in Hacker News.