Thursday 7 September 2017
I've released rr 5.0. Kyle convinced me that trace stability and portability were worth a major version bump.
- Introduction of Cap'n Proto to stabilize the trace format. Recordings created in this rr release should be replayable in any future rr release. This is a plan, not a promise, since we don't know what might happen in the future, but I'm hopeful.
rr packcommand makes recordings self-contained.
- Packed recordings from one machine can be replayed on a different machine by trapping CPUID instructions when supported on the replay machine. We don't have much experience with this yet but so far so good.
- Brotli compression for smaller traces and lower recording overhead.
- Improvements to the rr command-line arguments to ease debugger/IDE integration. rr replay now accepts a -- argument; all following arguments are passed to the debugger verbatim. Also, the bare rr command is now smarter about choosing a default subcommand; if the following argument is a directory, the default subcommand is replay, otherwise it is record.
- Performance improvements, especially for pathological cases with lots of switching to and from the rr supervisor process.
- Syscall support expanded.
- Many bugs fixed.