Thursday 30 June 2016
rr 4.3.0 Released
I've just released rr 4.3.0. This release doesn't have any major new user-facing features, just a host of small improvements:
- AVX (i.e. YMM) registers are exposed through gdb.
- Optimizations for I/O-heavy tracees on btrfs. I highly recommend putting tracee data and the traces on the same btrfs filesystem to take advantage of this.
- Support for dconf's shared memory usage.
- Much better support for vfork.
- Much better support for ptrace. This allows rr to record rr replay.
- Support for tracees calling setuid.
- Support for tracees compiled with AddressSanitizer.
- Support for optimized release builds via cmake -DCMAKE_BUILD_TYPE=Release (thanks to Keno Fischer).
- Keno Fischer also dived into the guts of rr and did some nice cleanups.
- As always, syscall support was expanded and many minor bugs fixed.
- This release has been tested on Ubuntu 16.04 and Fedora 24 (as well as older distros).
- With the help of Brad Spengler, we got rr working on grsecurity kernels. (The changes to grsecurity only landed a few days ago.)
In this release I've fixed the last known intermittent test failure! Some recent Linux kernels have a regression in performance counter code that very rarely causes some counts to be lost. This regression seems to be fixed in 4.7rc5 which I'm currently running.
Ubuntu 16.04 was released with gdb 7.11.0, which contains a serious regression that makes it very unreliable with rr. The bug is fixed in gdb 7.11.1 which is shipping as an update to 16.04, so make sure to update.