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

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

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:

Other IDE integrations support by Undo are listed at https://docs.undo.io under the “IDE integration” heading.

 

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:

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.