UDB is the leading time travel debugger for debugging Linux C/C++ applications locally.
Record & replay code execution
Debug failures in minutes
Inspect & understand code at any point in time
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.