[New Release] Undo Suite 8.0 for C/C++/Go/Rust

[New Release] Undo Suite 8.0 for C/C++/Go/Rust

This major Undo release introduces:

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.

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.

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:

Example output from the info timeline command.

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 the info 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.
Example output from the info timeline command containing additional Post Failure Logging messages.

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].

 

replay an arm recording

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.

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 the uexperimental 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 LiveRecorder
  • keyserver/CHANGELOG.txt for changes to the Undo Keyserver

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 as undo log)
    • recording-dump (now available as undo recording-json)
    • symbol-enc (now available as undo encrypt-symbols)
    • undo-sysinfo (now available as undo 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.

Stay informed. Get the latest in your inbox.