Resources
[New Release] Undo Suite 8.0 for C/C++/Go/Rust
This major Undo release introduces:
- usave command enabled for all UDB users
- a new command to print a timeline of recorded history
- multi-process correlation
- feedback-directed thread fuzzing
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 8.0 benefits from the improvements listed below.
usave command enabled for all UDB users
In the 8.0 release, all UDB users are licensed to use the usave
command. This enables you to:
- save the precise behavior of your program to a single on-disk recording file;
- load recordings in a new UDB session or in a session on another Linux system;
- log recorded program behavior retrospectively using Post Failure Logging.
To enable full-featured automated process recording workflows, users should use LiveRecorder which is included in Undo Team Edition.
New command to print a timeline of recorded history
Debugging a large application can be disorienting, as you may need to keep a lot of state in your head. The new info timeline
command makes this easier by showing key events in recording history:
- Start and end of recorded history
- Current position
- Time limits, if set
- Bookmarks
Post Failure Logging in UDB – public beta
Post Failure Logging retrospectively logs information about the execution of a failed program using an Undo recording of the program together with a probe file describing the information to log and the conditions under which to log it. Until release 8.0, the Post Failure Logging functionality could only be accessed using the undo log
program.
In version 8.0, Post Failure Logging is integrated into the UDB debugger as follows:
- After specifying a probe file using the
uexperimental set timeline-probe-file
command, Post Failure Logging output will be visible in the output of theinfo timeline
command. - After running the
uexperimental set timeline-file
command, timeline output will be written to the specified file any time the timeline state changes.
Further product changes relating to Undo Developer Edition 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.0 benefit from the improvements in UDB in addition to those listed below.
Full support for replaying recordings on a remote replay service
Undo has developed a new recording replay service which can be deployed within your network to allow recordings to be replayed remotely, avoiding portability problems when recordings use CPU features that are unavailable on the local system.
Once a replay service has been deployed, the uload
command in UDB will automatically replay recordings using the replay service if they cannot be replayed on your local system.
In release 8.0, the replay service is now available for production use.
To deploy the replay service, please contact us at [email protected].
Feedback-directed Thread Fuzzing – public beta
Rare race conditions in multi-threaded code can be difficult to identify. Release 8.0 introduces Feedback-directed Thread Fuzzing which allows you to capture more of those bugs in Undo recordings, more quickly, and so diagnose and fix them before they are released.
The new live-record --thread-fuzzing-analyze
option analyzes an Undo recording to identify instructions that access memory shared between multiple threads, and increases the frequency of thread switches around those instructions when re-recording the program.
Multi-process correlation in applications communicating using sockets – public beta
UDB now provides support for following UDP or TCP socket communications between recorded processes with the following new commands:
- The new
uexperimental load-correlation
command loads all recordings in a directory and identifies the socket connections between them. - The new
uexperimental ugo sender
command finds the most recent socket receive call in the current recording, locates the corresponding send call in another recording, and goes to that location. Similarly theuexperimental ugo receiver
command finds the location where the most recently sent socket data was received.
Further product changes are described in the changelog files included in your Undo release archive:
undolr/CHANGELOG.txt
for changes to LiveRecorderkeyserver/CHANGELOG.txt
for changes to the Undo Keyserver
New product architecture
In version 8.0 we introduce the following Undo product tiers:
- UDB is Undo’s Time Travel Debugger, which allows you to debug a live process and replay its execution history to get instant visibility into what your process just did, and why;
- Undo Team Edition extends the capabilities of UDB with our LiveRecorder tooling, providing an API and command-line tool for recording the execution history of a program and saving it in a recording file for later analysis in UDB;
- Undo OEM Edition contains the tools from Undo Team Edition and is additionally licensed for recording programs in the field either with LiveRecorder or with a redistributable variant of UDB.
For a more detailed comparison of the three products, see Undo Pricing & Licensing.
Privacy policy update
The Undo Privacy policy has been updated to clarify our policy on collecting data based on your use of Undo products. For more information, see the Product Usage Statistics section in the Undo Privacy Policy.
Removals
Release 8.0 removes some legacy product features and behaviors as described below.
- UDB can no longer load recordings that were made by UDB or LiveRecorder older than version 6.5.
- Use of UDB with Undo Keyserver releases older than version 6.5 is no longer supported.
- Use of the Undo Keyserver with UDB releases older than version 6.5 is no longer supported.
- The following deprecated top-level commands in Undo releases have been removed:
postfailurelog
(now available asundo log
)recording-dump
(now available asundo recording-json
)symbol-enc
(now available asundo encrypt-symbols
)undo-sysinfo
(now available asundo sysinfo
)
For further information on deprecations and removals, please see the relevant changelog files in your Undo release archive.
Life cycle
Release 8.0 is expected to:
- receive necessary patches for a 6-month period until the end of March 2025;
- produce Undo recordings that can be loaded in future versions of UDB released within the 3-year period until the end of September 2027.
System requirements
The following new distributions are supported by release 8.0 until their respective end-of-life dates:
- Ubuntu 24.04 LTS
- openSUSE Leap 15.6
The following distributions have entered an extended life phase and are no longer supported by default:
- Red Hat Enterprise Linux (RHEL) and CentOS 7 (see the RHEL life cycle) on x86
Customers who subscribe for extended support from Undo will continue to receive full support from our engineers for issues encountered on these distributions.
Note: the Undo Suite has never been supported on RHEL and CentOS 7 on ARM64 platforms and will remain unsupported when subscribing for extended support for this distribution.
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.