We use cookies on this website to gather performance statistics and track page usage. By using our website, you agree to our use of cookies.
Learn more

Live Recorder

Undo's recording engine

Program execution recording for Linux C/C++ applications

Live Recorder records a program's execution and generates a recording of the process as it ran. Anything that happened (down to the instruction level) is captured for subsequent replay and analysis. Think of it as a black box for software execution. In case of application crash or misbehaviour, the recording can be analysed to see what happened and when.

Code from a screen

How it works

The panels below show some of the core foundations that enable Live Recorder to record execution in a wide variety of use cases, whether development, test or production.

Technology foundations, instrumentation


The Undo Engine performs a JIT (just-in-time) binary translation of your application’s machine code as it executes, which allows it to capture all sources of non-determinism such as system calls, signals, thread switches and reads from shared memory or device maps.

Technology foundations, snapshots


As your program runs, Live Recorder stores snapshots of the program address space. These are complete copies of the current state of the program, but since they’re created using the Linux copy-on-write mechanism the impact on your system memory usage is kept to a minimum.

Technology foundations, event log

Event log

Results of each non-deterministic operation are recorded in an event log stored in the memory of your application process. These non-deterministic operations usually represent a tiny fraction of the instructions executed so the event log is smaller than you might expect. Configure it as a circular buffer, capturing only the most recent history leading up to the bug.

How Live Recorder can integrate with your application


Live Recorder can be linked to your application or used as a standalone executable in order to generate recordings. Linking the Live Recorder API allows for fine grained recording of specific code execution or time segments of your program, whereas the executable allows for a more simple recording approach that suits a more general use case.

Live Recorder Solutions

Live Recorder packages allow your team to get maximum value from record, rewind, replay technology.

Trusted by