UDB is the leading time travel debugger for Linux C/C++ applications.
- Go back in time in your program’s execution and see what went wrong
- Debug test failures in minutes
- Explore code you are not familiar with
Resolve complex software defects in development or in production up to 10x faster.
Record - the failed process
Replay - debug the recording
Resolve - failures fast
When dealing with unfamiliar code, there is a huge productivity benefit in being able to go backwards and forwards over the same section of code until you fully understand what it does.
The Undo debugger has helped us efficiently diagnose numerous challenging issues that would have taken much more time to resolve with GDB or other debuggers that are forward-looking with little or no reversibility.
Using UDB, I was able to step backwards in time in the current thread of execution to get to a last known good state. From there, I was able to do a binary search through the intervening time to pin-point when different pieces of the state changed, and what code was responsible for those changes. Eventually I tracked down the bug.
I set a watchpoint on the corrupt pointer and used reverse-continue trying to get to the last time the memory location was updated. I quickly found that some other code had mutated that data.