Record a live failing process and replay that process to get instant visibility into what your process just did and why.
Ideal to quickly resolve concurrency defects e.g. race conditions, memory corruption, deadlocks.
▪️ Fix bugs faster by reducing debugging down to just one cycle
▪️ Get to the root cause of bugs with 100% certainty
▪️ Understand codebases you didn’t write
Debugging is painful. It can involve lots of iteration as we look for clues one at a time - until we figure out what’s going wrong.
What if we could just see what happened - rather than trying to figure it out?
Imagine if we could simply rewind through the program execution to rapidly identify the root cause of any bug.
With Time travel debugging (or reverse debugging) you can step both forward and backward freely through program execution - drastically reducing the amount of time invested in troubleshooting code.
Learn more about why Time Travel Debugging is a game changer
▪️ Reverse debugging
▪️ Single step forward or backward
▪️ Run forward or backward
▪️ Hit breakpoints, conditional breakpoints & watchpoints - running forward or backward
▪️ Jump to a bookmark in your program’s execution history
▪️ Jump to specific a moment in time in your program’s execution
▪️ Full inspection of global and local variable values
▪️ Full compatibility with GDB commands
▪️ IDE support
Play with the arrows above the animation on your right to get a mini taster of how UDB works.
Replay the program execution history to understand exactly what went wrong and why.
Travel backward in time (and forward again) to inspect the program state. UDB places additional controls at developers fingertips to reverse step out, reverse step into and reverse step over.
Rewind through the program execution to rapidly identify the root cause of any bug.
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.
To find the root cause of bugs we need to work backward
Everything you need to know about time travel debugging and why you should use it.
Just UDB Binaries.
No, only user space.
UDB works on any Linux distro with kernel 2.6 or later, on x86.
UDB is currently used on some of the world’s most complex software, including heavily multithreaded applications and those using shared memory.