views:

762

answers:

7

Has anyone actually used a reversable debugger? The only product that Google turns up is UndoDB. It is for apparently for Linux only.

+3  A: 

The word your looking for may be "Omniscient Debugging".

Here is one: http://www.lambdacs.com/debugger/

The UndoDB page has some links to (expensive) commercial debuggers.

Phil
+2  A: 

VS 2010 is supposed to have something like this, I think.

BigSandwich
+1  A: 

You can consider using VMware's Replay Debugging, available in the latest release of VMware Workstation, e.g. see http://www.replaydebugging.com/2008/08/vmware-workstation-65-reverse-and.html. You can download a trial at http://www.vmware.com/products/ws/ and it works with Visual Studio.

(Disclaimer: I work for VMware though not on this product.)

Emil
+3  A: 

The latest gdb version 7.0 (released this week) supports reverse debugging on a number of platforms (eg. native i386 and x86_64 linux, VMware workstation, UndoDB, and Simics simulators from Virtutech). ftp://ftp.gnu.org/pub/gdb

It works with the latest preview / pre-release of VMware workstation 7.0, which also supports reverse debugging of MSWindows guests using Visual Studio debugger. Get a free trial download of workstation 7.0 at http://communities.vmware.com/community/beta/workstation, and find some helpful usage tips here at http://communities.vmware.com/docs/DOC-10714

Michael Snyder
+3  A: 

The newly released gdb-7.0 includes reverse debugging capability for native linux x86 and x86_64. You can debug any linux program as usual, turn on the "recording" feature, and from that point on, if you step forward too far, you can step backward or reverse-continue to a breakpoint.

Michael Snyder
+1  A: 

Yes, I've used it back in the 90th.. The Watcom C Debugger (understood FORTRAN and most other languages as well) had the option to let you step back and forward in time.

It's great, but not a big new thing...

Nils Pipenbrinck
+1  A: 

Yes, I have used Virtutech Simics with reverse since 2005. It is incredibly useful, and does make most bugs very simple to fix. Especially those related to timing and race conditions, and multicore/thread "heisenbugs".

jakobengblom2