Rr: Difference between revisions

From miki
Jump to navigation Jump to search
Line 5: Line 5:
* [https://github.com/mozilla/rr/wiki/Using-rr-in-an-IDE Using rr in an IDE]
* [https://github.com/mozilla/rr/wiki/Using-rr-in-an-IDE Using rr in an IDE]
* [https://github.com/mozilla/rr/wiki/Building-And-Installing Building and Installing] and [https://github.com/mozilla/rr/wiki/Usage rr Usage], from Mozilla wiki.
* [https://github.com/mozilla/rr/wiki/Building-And-Installing Building and Installing] and [https://github.com/mozilla/rr/wiki/Usage rr Usage], from Mozilla wiki.


* [https://pernos.co/ Pernosco] A nice front-end for rr (free for users on Github, see [https://news.ycombinator.com/item?id=25042827 HN thread]).


== Install and configuration ==
== Install and configuration ==

Revision as of 14:12, 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.