Welcome to the Undo documentation!


This documentation explains how to use LiveRecorder, a technology which allows a debugged application to go back to any point in the debuggee’s execution history, including stepping backwards and forwards by individual instructions, as well as by source lines, function calls and so on. It can regenerate the complete state of the debuggee process at any point in its execution, including information that is destroyed during execution.

LiveRecorder includes:

  • The LiveRecorder library which can be integrated into any Linux application to give it recording capabilities.
  • The live-record command-line tool which allows users to record the execution of a process on the command line.
  • UndoDB, a debugger which can be used on the command-line (similarly to GDB) or through IDEs.

Version History

Release 5.3
  • Support for applications written in the Java language [Beta].
  • Log Jump supports jumping from a line in a log file to the location and time in the program where it was emitted.
  • Post Failure Logging tool to insert logging statements into a deployed application. Enables diagnosing applications deployed in PII and IP-sensitive environments.
  • UndoDB Automation API to automate workflows in UndoDB using Python.
Release 5.2
  • Support for applications written in the Java language [Alpha].
  • Support for AVX-512 x86 instructions (avx512f, avx512bw, avx512cd, avx512dq, avx512vl).
  • Increased default event log size to 256MB when recording 32-bit processes and 1GB when recording 64-bit processes.
Release 5.1
  • Support for applications written in the Go language, see GoLand and Go Delve.
  • Fast Switch between inferiors when replaying MPC recordings.
  • Time Limits allow all navigation within a recording to be constrained within a time (bbcount) range. See help uset time-limits in udb.
  • Support for x86 Memory Protection Keys (pkeys).
Release 5.0: