The high-performance reversible debugging tool for Linux.
Undo's performance and low memory consumption allow you to step your application backward, as well as forward, faster than any other commercial or open-source reversible debugger. By stepping back in your program, setting a watchpoint or replaying non-deterministic bugs, you can get straight to the root cause of the bugs that are decreasing your productivity and slowing your software releases.
Debugging with UndoDB:
Reverse capabilities: Step back to the preceding instruction, source line, function call or brakpoint.
Watchpoints: Run back to a watchpoint to discover when a variable was last changed. For example, put a watchpoint on a corrupted memory location and run backwards - the watchpoint triggers at the thread/code that most recently modified that location.
Jump to any point in your program's history: Jump directly to areas of code that are suspected to be corrupted.
Faithful replay: Non-deterministic bugs will be replayed when the user moves forward in the program. The program will follow exactly the same path.
Seamless integration: Undo is a drop-in replacement for gdb and therefore seamlessly integrates into developers' work flow. UndoDB can be used at the command line, from Eclipse, DDD or Emacs, allowing developers to choose their preferred work environment.
The UndoDB Linux debugger uses a "snapshot-and-replay" technique, which stores periodic copy-on-write snapshots of the application and non-deterministic inputs (system calls, thread-switches, shared memory reads, etc). This means a typical CPU-intensive application can run with just 1.7x slow-down compared to native execution, and IO bound applications at close to native speed. Memory requirements are also (comparatively) extremely low.
It is an unpalatable truth that debugging dominates software development. By augmenting familiar debugger operations with reverse counterparts, bugs that would usually take days or weeks to solve can – literally – be found and fixed in minutes. The return on investment here is clear: the less time developers spend debugging, the more time they spend adding value to your business; being quicker when fixing bugs enables you to release better quality software and hit your scheduleds, delighting your customers.
UndoDB brings reversible debugging to complex, real-world applications. Reversible debugging on Linux that really works.
See what's new in UndoDB 4