Rr Versions Save

Record and Replay Framework

5.7.0

7 months ago

This release includes many bug fixes, improvements to system call coverage, and incremental performance improvements. In particular, performance is improved for applications with thousands of threads (partly via the new WaitManager). A lot of rare intermittent bugs have been fixed, partly due to significant reworking of how unexpected task exits are handled.

The required Linux kernel version has been bumped to 4.7 (because we require waitid() to support __WALL). The required CMake version has been bumped to 3.5.0.

New infrastructure for building and testing rr releases in AWS EC2 instances has been constructed. This should make it easier to make more frequent and more reliable rr releases. As part of that work, we are now building Aarch64 packages.

5.6.0

1 year ago

This release includes many bug fixes, improvements to system call coverage, and incremental performance improvements. Plus:

  • ARM Aarch64 support is now production quality (features implemented and tests pass), with some caveats. Recent iterations of Cortex and Neoverse (AWS Graviton) chips are supported, as is Apple M1 (when running Linux on bare metal M1). LDREX/STREX are not supported; userspace code must use Large System Extensions atomics only. Thanks to Yichao Yu and Keno Fischer for this work! We don't have prebuilt ARM packages yet.
  • Recording applications that use RDTSC heavily should be much faster than in previous versions of rr.
  • The rseq system call is now supported (via emulation).

5.5.0

2 years ago

As usual there are many bug fixes, improvements to system call coverage, and incremental performance improvements. Thanks to all our contributors.

5.4.0

3 years ago

As usual there are many bug fixes, improvements to system call coverage, and incremental performance improvements. Thanks to all our contributors.

AMD Zen CPUs are now supported, with some caveats. Special thanks to the people who reverse-engineered Zen details to enable this.

There is experimental support for ARM AArch64 platforms that avoid the STREX instruction.

rr record has a new option --nested=detach which lets nested rr recordings run "detached" to create a separate recording.

5.3.0

4 years ago

This is primarily a maintenance release. There are many bug fixes, improvements to system call coverage, and incremental performance improvements. Thanks to all our contributors.

The rr sources, rr buildid and rr traceinfo commands have been added to make it easier for external tools to work with rr traces. rr ls has been added to improve management of traces.

rr no longer depends on Python 2. Python 3 is required.

5.2.0

5 years ago

Maintenance update to handle issues arising from Ubuntu 18.04 and Fedora 28. Improvements to chaos mode. Improvements to trace portability: https://robert.ocallahan.org/2018/04/cpuid-features-xsave-and-rr-trace.html Various bug fixes.

5.1.0

6 years ago

gdb info proc map supported. Maintenance update to handle issues arising from Ubuntu 17.10 and Fedora 27. Various bugs fixed. No 32-bit release packages included because my 32-bit VM broke. Let's see if anyone complains.

5.0.0

6 years ago

Introduction of Cap'n Proto to stabilize the recording format. Recordings created in this rr release should be replayable in any future rr release. New rr pack command makes recordings self-contained. Recordings can be made on one machine and replayed on a different machine by trapping CPUID instructions when supported on the replay machine. Brotli compression for smaller traces and lower recording overhead. rr replay command line argument -- can be followed by any number of arguments to be passed to the debugger. rr now chooses replay as the default subcommand if the first argument is a directory.
Performance improvements. Syscall support expanded. Many bugs fixed.

4.5.0

7 years ago

Work around a Linux kernel bug induced by DirtyCOW fix. Support for Hardware Lock Elision, with detection of a KVM PMU virtualization bug that breaks HLE support. Make syscall-buffering use an alternate stack (makes Go programs work). Syscall support expanded (especially ptrace subcalls). Support for Knights Landing and Kaby Lake CPUs. Many bugs fixed. Great thanks to Keno Fischer for much of this work!

4.4.0

7 years ago

Compile releases with CMAKE_BUILD_TYPE=Release for improved performance. Support for record and replay of chromium-browser and google-chrome via various bug fixes: notably, syncing syscall writes to mmapped files, and handling tasks forked with invalid TLS areas. Many improvements to make signal-state tracking match the kernel more accurately. Support for Linux 4.8 kernels (in particular, PTRACE_SYSCALL notifications being delivered before seccomp notifications instead of after). General recording overhead improvements (thanks to Keno Fischer). Support for accessing thread-local variables while debugging (thanks to Tom Tromey). Syscall support expanded. Many bugs fixed.