Diagnose the root cause of your hardest bugs in minutes,
not weeks

THE UNDO SUITE FOR C/C++

AI-powered root cause analysis for large-scale complex applications

Undo gives your coding agent the runtime context it needs to solve the hardest problems in complex software.

Undo captures complete program execution – every state change, execution path, function call and data flow – into a recording file and makes that recording available to coding agents.

Recordings are the antidote to hallucination. They are the only way agents can access the runtime context needed to understand what actually happened, reason about software behavior, and solve problems that code alone cannot explain.

  • Automate root cause analysis of non-trivial issues (e.g. concurrency defects, memory corruptions, flaky tests) and get tickets resolved
  • Resolve issues up to 100x faster – deliver software faster or resolve customer issues faster
  • Solve problems previously beyond the reach of AI agents and maintain a stable codebase at scale

AI-Powered Root Cause Analysis
with Full Execution Context

Modern AI coding assistants like Claude Code, Copilot, Codex, and Cursor can read static code and suggest fixes — but they can’t see what actually happened at runtime.

Undo gives AI that missing context, so you can avoid AI hallucinations. By providing a recording of program execution, Undo gives AI agents a reliable ground truth for debugging failures.

Undo’s time travel debugging engine is the foundation of its AI capabilities. This enables a new class of agentic debugging workflows, where AI can investigate failures with the same deep context as an expert engineer.

Image link

With access to a deterministic execution recording — AI agents can:

Trace exactly when and why a variable changed

Identify the root cause of crashes or exceptions

Follow the precise chain of events that led to a failure

Using Undo AI, engineers — and their coding agents — can ask questions like:

Why did this variable change here?

What caused this null pointer dereference?

What was the thread state when the crash occured?

Instead of guessing from static code, AI agents can analyze the real 
execution timeline.
Answers come directly from the deterministic execution history captured by Undo.

UNDO INTEGRATIONS WITH THE CODING AGENTS YOU ALREADY USE

Image link
Image link
Image link
Image link
Image link
KEY BENEFITS

APPLICATIONS

FIX CUSTOMER-REPORTED BUGS

Debugging customer issues is painful, time-consuming, and stressful.

Often, it can be almost impossible to recreate the conditions under which the application is running and the defect occurred. Time to fix becomes unpredictable.

The pressure is on. Uncomfortable conversations ensue. Perhaps even dreaded escalations.

FIX YOUR FLAKY TEST PROBLEM

Same execution environment and different test results each time?

You have a flaky test problem. They are typically caused by defects that are intermittent… and therefore hard to reproduce.

Customers integrate Undo into their CI / Test Suite to continually run flaky tests under recording. When the test fails again, you then have a recording!

Learn more

FIX BUGS IN DEVELOPMENT & TEST

Debugging test failures on a large-scale and complex codebase can be non-trivial. Regression tests may run for multiple days, so it can take a very long time to reproduce issues.

Recompiling repetitively is expensive. And setting up debug sessions can be tedious and time-consuming.

Deploy Undo in your CI or Automated Test and debug failures instantly – skipping all the tedious steps usually required to reproduce the problem and without any debug session set up steps.

Learn more
Image link

FIX BUGS IN THE FIELD (OEM SOLUTION)

The hardest bugs are ones that only happen on the customer’s system.

Ship Undo as part of your product. Switch it on to capture the bug in a recording file and switch it off. The recording will contains all the execution data you need. Root cause the issues without repeatedly sending builds to the customer and searching for a minimal reproducer.

Undo is used in production by some of the world’s most confidentiality-sensitive businesses. Send the recording back to your engineers for analysis, debug it in the field or exchange auditable, text-based analysis scripts for maximum transparency.

Learn more

WHAT SOFTWARE ENGINEERS SAY

KEY FEATURES

PORTABLE RECORDING FILES
Recordings capture everything your application did. They replay the same, every time, everywhere. They can be replayed outside of the original environment and shared with your team.
ADVANCED STATE INSPECTION WITH TIME TRAVEL
Replay recordings forward and backward to inspect full application state, including the contents of all variables and the heap.
CATCH RACE CONDITIONS
Thread Fuzzing randomizes thread execution to expose concurrency bugs in multithreaded codebases.
Learn more
GDB COMPATIBLE
If you’re already familiar with GDB, it’s just a handful of new commands to unleash the power of time travel.
IDE INTEGRATION
Undo plugs into whatever IDE you prefer (VS Code, CLion, Emacs).
WORKS WITH YOUR EXISTING SYSTEMS
No set up required. No compilation or build changes. No kernel or system configuration.
API CONTROL
Control recording from Undo’s library API to capture what you need, on demand.
FASTER THAN YOU THINK
1.5-5x slowdown whilst capturing on real-world programs, thanks to a just-in-time instrumentation engine that captures only what’s necessary.
Learn more
1ST CLASS SUPPORT
Direct access to Undo engineers and debugging experts to make Undo work smoothly in your environment.

WHY IS UNDO DIFFERENT?

BEFORE UNDO

Wasting days and still getting unreliable outputs

AI agents struggle on non-trivial issues in complex codebases. They have access to the whole source code, perhaps some logs; yet outputs remain unreliable. Not because your model is bad, but because it lacks runtime context. The hardest problems in million-line codebases live in runtime state. (not static code)

WITH UNDO

Automated evidence-based root cause analysis in minutes

Recordings are the antidote to hallucination. They are the only way AI agents can access the runtime context needed to understand what actually happened, reason about software behavior, and solve problems that code alone cannot explain.

CI & TEST AUTOMATION TOOLS

Want to automate the generation of recording and store them in your CI or bug tracker?

No problem. You can integrate Undo with all popular CI and Test Automation tools, including Jenkins, Maven, Circle CI, or TeamCity.

The core technology is language independent and compatible with most mainstream Linux distributions.

Image link
FAQS

COMMON QUESTIONS

Here are some frequently asked questions and answers you may find helpful. Detailed technical documentation is also available in the docs.

We use binary instrumentation to capture only the bare minimum data required to record execution as efficiently as possible. To keep the overhead low, we don’t translate instructions that don’t require it.

The recording contains all information required to recreate the entire memory state of the recorded process at any machine instruction that was recorded. This includes memory maps, any data read from the file system, network or the kernel generally, and the executable and libraries that were involved with running the application.

Undo works with normal releases without any code or build changes, so you don’t need to modify your code and you need to recompile.

Undo is capable of handling multithreaded applications. Some of our customers record applications with 30-40 active threads and 100s of less active threads. For example it is used on SAP HANA – a heavily multithreaded application that uses custom memory allocators, custom threading libraries and that typically runs on a machine with 100s of cores and terabytes of RAM. Read case study

We don’t usually recommend running all your regressions under recording because the overheads can be significant. Instead, do 2 things:

  1. Configure the test system to re-run failing tests under recording (often up to some upper limit of iterations or for some fixed length of time to catch flakiness)
  2. Create a subset of regression tests that are known to be flaky, and run them repeatedly with recording enabled.

The first is useful for a “pre merge” flow; the latter for if you have a “flaky test problem” (which most engineering teams do to some degree).

Want to see if this could work in your environment?

SPEAK TO AN ENGINEER