Resources
[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.
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
LiveRecorder 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
- The official release notes are distributed inside the release directory at
docs/release-notes/UDB-and-LiveRecorder-7.1-release-notes.pdf
. - A summary of the latest features is available at https://docs.undo.io/#version-history.
- System requirements are available at https://docs.undo.io/SystemRequirements.html.
*Brightwell
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? 🙂