[New Release] UDB and LiveRecorder 7.1 for C/C++

[New Release] UDB and LiveRecorder 7.1 for C/C++

Our engineering team just released a major new version of UDB and LiveRecorder 7.1 for C/C++ with the cheesy codename of Brightwell*.

This release includes the following improvements for UDB and LiveRecorder for C/C++.

Headline improvements in UDB (relevant to all customers)

Command history is saved by default

UDB now saves the command history from all of a user’s sessions by default. Use the up arrow key (or Control-P) to access previously typed commands. This feature can be disabled by adding set history save off in an initialization file.

This is a behaviour change from previous versions of UDB and from GDB, where history saving is disabled by default, and the default history file is a .gdb_history file in the current working directory. Users can restore the previous behaviour by adding the following text in an initialization file:

set history save off

set history filename ./.gdb_history

Command hints are displayed after inactivity

After a period of inactivity at the prompt, UDB now provides time-saving command suggestions that could enhance your productivity with time travel debugging workflows.


Improvements relevant to LiveRecorder customers

Progress indicators are displayed when saving recordings

When recording a large application, it can take some time for recordings to be written to disk. In previous releases, no visual feedback was provided to the user while the save operation was in progress.

To address this, the 7.1 release adds progress indicators for recording save operations in UDB and the command-line live-record tool.

Progress indicators displayed when saving LiveRecorder recordings

Recordings using Intel SHA extensions can be replayed on CPUs without hardware support

Recordings of x86-64 applications which use instructions from the Intel SHA instruction set extension (identified by the sha_ni CPU flag) can now be replayed on a machine with a CPU which does not implement those instructions.

A new LiveRecorder API function saves recordings of a single point in time

Some applications with particularly high memory requirements can be impractical to record using the Live Recorder API provided in previous releases. Core dumps can be used as an alternative debugging tool, but they do not allow functions in the program to be evaluated.

To address these issues, version 7.1 of the LiveRecorder API adds a function for creating point recordings which capture program state at a single point in time. When replaying these recordings, functions in the program can be evaluated in the same way as in a full LiveRecorder recording.

Documentation for the new function is available at https://docs.undo.io/UsingTheLiveRecorderAPI.html#creating-a-point-recording.

A new LiveRecorder API function saves recordings automatically when the event log is full

Saving recordings automatically when event log is fullLiveRecorder stores recording data in a circular event log. With previous LiveRecorder releases, some users found that generated recordings did not capture bugs that had been “rotated out” of the event log. To avoid the need to increase the maximum event log size, release 7.1 provides the option to save a recording file and stop recording when the event log is full, instead of rotating.

Documentation for the new function is available at https://docs.undo.io/UsingTheLiveRecorderAPI.html#recording-program-execution-until-the-event-log-is-full.

Full release notes


We ❤️ cheese, so we name all of our releases after some of them. What on earth is Brightwell cheese? Okay, technically it’s called “Brightwell Ash” and it is a ripened goats cheese disc with an ash-coated rind – traditionally made in the county of Oxfordshire, UK. Have we made you salivate yet? 🙂

Stay informed. Get the latest in your inbox.