Faster than ever
Typical cpu-intensive applications (e.g. gzip) have a slow-down of 1.7x
or less when run under UndoDB. Most IO-bound applications run at almost native
speed.
Support for shared memory
UndoDB v3.0 can be used to debug programs that use shared memory.
Reverse watchpoints and breakpoints
The new bcontinue command can be used when breakpoints and even
watchpoints are active. Reverse watchpoints are particularly powerful –
finding the last time a given value changed can be invaluable when tracking down
those hard-to-find memory corruption or subtle algorithm-bugs.
Experimental gdb 7.0 integration
gdb 7.0 has native support for reverse debugging targets. UndoDB 3.0 has
experimental support for integration into gdb 7.0 to provide an even more
seamless reverse debugging experience. This also allows UndoDB to be used with
other gdb front-ends which have grown reverse debugging support (e.g. Eclipse
and emacs).
32-bit on 64-bit support
Debug 32-bit apps running on a 64-bit OS.
| |
Improved memory management
UndoDB will dynamically allocate memory from the system growing its execution
log until a predefined limit is reached. At this point you can stop or place
the log into "circular-buffer" mode, discarding the oldest events as the
application runs. Together with the performance enhancements this means UndoDB
can be used to track down those bugs that take days to surface.
Record-mode poke data
The new bset command can be used to change memory in record mode.
(Alas, it is not practical to permit the changing of memory in replay mode due
to 'external state'. e.g. think about the consequences of unlinking a file from
the filesystem.)
Support for extended instructions up to and including SSE4
Almost all valid x86 32-bit and 64-bit instructions are now supported.
Interrupt backwards operations with ^C
If a backwards operation is taking a particularly long time to complete it can
now be interrupted at any time.
Much more
We're continually improving UndoDB and many small additions and tweaks have
further improved your reverse debugging experience.
|