Resources
[New Release] Undo Suite 8.3 for C/C++/Go/Rust
This Undo release introduces a number of headline product improvements and updated system requirements. For more information about Undo Releases, click here.
Some product improvements are marked with a public beta label in the text below – this indicates that we are seeking user feedback on these features before full productization. Please let us know if you find them useful, as features that are known to be in use are more likely to be prioritized for further improvement.
Improvements in UDB
UDB v8.3 benefits from the improvements listed below.
New command to print event statistics
UDB and the underlying Undo Engine work by storing non-deterministic events from your program’s execution history in an event log.
The new UDB command info event-stats
prints a table with one row for each event type in execution history, giving the count, size and name of the events of that type. The table is sorted in descending order by the count.
For example:
0% 1,804> info event-stats
Count Total size Name
------- ------------ -----------------
69 13248 NDETERM
22 1760 write
12 1694 mmap
8 512 RDTSC
4 960 fstat
4 512 mprotect
3 216 close
3 384 brk
3 240 openat
This can be used to give an overview of application behaviour. For example, when optimising application performance, the most frequent events can provide ideas about where to start. For example, if the event statistics are dominated by write
system calls, then buffering may help, or if the event statistics are dominated by sched_yield
system calls, then replacing spinlocks with mutexes could help.
New UDB option to defer license checkout
UDB can be used with the --defer-recording
option to delay recording, but earlier releases will always check out a license from the Undo Keyserver at startup. This can add some friction when attempting to deploy UDB as a drop-in replacement for GDB.
In release 8.3, UDB has a new --defer-license-checkout
option which delays the checkout of a license from the Undo Keyserver until recording is enabled with the urecord command.
More…
Further product changes relating to UDB are described in the CHANGELOG-udb.txt
file included in your Undo release archive.
Improvements in Undo Team & OEM Editions
Undo Team & OEM Editions v8.3 benefit from the improvements in UDB described above, in addition to those listed below.
New tool to print recording information
Our users commonly ask why a particular recording file is larger than expected, and the best way to tell is to examine the contents of the recording. The undo recording-json tool introduced in Undo 8.0 provides a machine-readable dump of recording information, but no tool was available that provided more human-oriented output.
In the 8.3 release, the new undo recording-summary command is added. This tool provides recording information in a distilled format which is more readable for humans.
Read Understand Undo Recording Files for more information.
Feedback-directed Thread Fuzzing of a live process – public beta
Release 8.0 introduced Feedback-directed Thread Fuzzing, available through the --thread-fuzzing-analyze
option to the live-record tool. This analyzes a reference recording to find good opportunities for thread switches which are then applied in a new recording. However, it has two inconvenient features: the process has two stages (making the reference recording and then re-recording with analysis turned on) which may be difficult to arrange in a complex workflow; and it relies on disabling address-space layout randomization (ASLR) in order to ensure that code is mapped into memory at the same address each recording session as in the original reference session.
To make Feedback-directed Thread Fuzzing simpler to use, release 8.3 introduces the new --thread-fuzzing-feedback
option to the live-record tool. This carries out the analysis and the thread fuzzing in the same recording session.
Recordings using PREFETCH / PREFETCHW instructions are now replayable on older hardware
In previous releases, recordings created on Intel Skylake and newer processors using the PREFETCH and PREFETCHW instructions could not be replayed on older hardware: UDB reported that the 3dnowprefetch ISA extension was unavailable. In release 8.3, this limitation is removed and this scenario is now supported.
More…
Further product changes relating to Undo Team & OEM Editions are described in the following changelog files included in your Undo release archive:
- undolr/CHANGELOG.txt for changes to LiveRecorder
- keyserver/CHANGELOG.txt for changes to Undo Keyserver
IDE support
The following IDE integrations have been updated to coincide with the 8.3 release:
- The Time Travel Debug for C/C++ extension for Visual Studio Code is updated to version 2.1.8 (changelog)
- The Time Travel Debug for C/C++ plugin for CLion (public beta) is updated to version 2.8.0, adding support for CLion 2024.3 and 2025.1.
Other IDE integrations support by Undo are listed at https://docs.undo.io under the “IDE integration” heading.
Life cycle
Release 8.3 is expected to:
- receive necessary patches for a 6-month period ending at the end of November 2025;
- produce Undo recordings that can be loaded in future versions of UDB released within the 3-year period ending at the end of May 2028.
System requirements
The following recently-released distributions are supported in release 8.3 until their respective end-of-life dates:
- Red Hat Enterprise Linux 9.5
The following distributions have reached their end of life and are unsupported in release 8.3:
- Fedora 40 (see the Fedora End of Life Releases page)
For a list of the system requirements for a given release, see the documentation at docs/userguide/html/SystemRequirements.html
in the release directory. The system requirements for the latest Undo release are always provided in full at https://docs.undo.io/SystemRequirements.html.