Undo is a high-performance reversible debugging tool designed 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.
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.
Almost any Linux application can be debugged, including:
- Applications that use threads, signals, and/or shared memory.
- Applications using custom system libraries (e.g. malloc or threading).
- Applications that directly access hardware (e.g. openGL or Infiniband).
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.
UndoDB brings reversible debugging to complex, real-world applications. Reversible debugging on Linux that really works.
See what's new in UndoDB 3.5