Releases: rr-debugger/rr
5.8.0
As usual, this release contains many small bug fixes and updates for new syscalls and CPU microarchitectures.
There is some support for lldb now. rr replay -d lldb
will launch LLDB and connect it to rr just like we do for gdb. LLDB does not expose reverse-execution commands so for now, you can only replay forwards. (Of course you can still replay a recording as many times as you need to.)
5.7.0
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
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
As usual there are many bug fixes, improvements to system call coverage, and incremental performance improvements. Thanks to all our contributors.
5.4.0
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
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
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
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
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
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!