Find and fix C/C++ bugs in minutes with UDB

Explore some of the features of time travel debugging

DOWNLOAD FREE TRIAL

Time travel debugging

UDB is an interactive time travel debugger for Linux C/C++ used in inner-loop development.

Debug a live process and replay the process's execution history to get instant visibility into what your process just did, and why.

Ideal for quickly debugging race conditions, segmentation faults, stackoverflow errors, double free or memory corruption.

▪️ Fix bugs faster by reducing debugging down to just one cycle
▪️ Get to the root cause of bugs with 100% certainty
▪️ Understand unfamiliar codebases

Download UDB to explore some of the features of time travel debugging.

Travel back in time in your program's execution

Time travel debugging greatly improves team productivity in development.

▪️ Travel forward and backward in time to inspect program state
▪️ Replay program execution to understand exactly what went wrong and why
▪️ Simply see what happened rather than trying to figure it out

Step back in time with UDB

UDB delivers the full power of a modern debugger with variable and memory inspection, scripting, conditional breakpoints and watchpoints - all available in forward and reverse directions.

UDB available as a Visual Studio Code Extension

Working in Visual Studio Code?

Integrate UDB into VS Code to debug directly from your preferred IDE. View the documentation for more information.

You can also use UDB in CLion, Eclipse, and Emacs.

Concurrency bugs

Fix concurrency bugs

Multithreaded and multi-process application architectures help improve performance, but they also increase the risk of challenging concurrency defects occurring, such as race conditions, shared memory corruption, or deadlocks.

UDB is ideal for rapidly debugging concurrency defects.

Read the tutorial on how to debug C/C++ race conditions with UDB.

Memory bug

Debug memory management bugs

UDB is also used to rapidly identify the root cause of programming errors related to memory management, such as:

▪️ Segmentation faults due to memory access violation
▪️ Double free
▪️ Memory corruption
▪️ Stack corruption, i.e. buffer overrun

These can be hard to debug since the root cause may no longer be in scope. With UDB, you can see what went wrong by just travelling back in your program’s execution history.

UDB inspect variable state

Understand what code is doing

Working on complex unfamiliar code you didn't write?

▪️ Quickly understand program behavior by navigating forward and backward in the program’s execution history
▪️ Watch variable and memory changes as you navigate, forward and in reverse
▪️ Reduce onboarding ramp time: enable new joiners to get up to speed with the code faster

Pricing Plans

Try UDB for free to explore some of the features of time travel debugging. Explore LiveRecorder for the full experience including integration with your CI and System Test to debug failures from days or weeks ago.

Trial
Free
for 60 days
UDB: Individual Developer Trial
60 days trial
Some of the features of time travel debugging
No credit card required
FREE TRIAL
Individual License
$150/mo
per user, billed annually
UDB: Named User License
$1,800 pa
Some of the features of time travel debugging
Interactive record/replay
BUY NOW
TEAM / ENTERPRISE LICENSE
Contact us
annual billing
LiveRecorder: Teams / Enterprise
Full time travel debugging experience
CI / Automated Tests integration
Enterprise support
CONTACT US

What developers are saying

FAQ

Common questions

Here are some frequently asked questions and answers you may find helpful.

Detailed technical documentation is also available at https://docs.undo.io

  • UDB runs on most modern Linux distributions and supports both 32 and 64-bit x86 programs. For more details, see the full list of system requirements.

  • Just UDB binaries.

  • No, only user space.

  • 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.

  • Yes.

  • UDB is currently used on some of the world’s most complex software, including heavily multithreaded applications and those using shared memory.

  • Check out the UDB Quick Reference guide for the full command set available.

  • Yes! We have an Educational License Program in place. Learn more

Technical Paper: Time Travel Debugging