How to do bidirectional or reverse debugging of programs?

前端 未结 11 2024
南方客
南方客 2020-12-02 21:29

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

相关标签:
11条回答
  • 2020-12-02 21:47

    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

    0 讨论(0)
  • 2020-12-02 21:48

    I am using UndoDB on Linux instead of plain gdb for every debugging session. Reverse debugging is very useful and speeds up debugging significantly. You can start debugging from the symptom of the problem (e.g. assertion failure or some wrong message is printed) and debug backwards in time, looking for the root cause of the problem.

    0 讨论(0)
  • 2020-12-02 21:53

    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.

    0 讨论(0)
  • 2020-12-02 21:56

    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".

    See http://jakob.engbloms.se/archives/1547, http://jakob.engbloms.se/archives/1554, and http://jakob.engbloms.se/archives/1564 take inventory of most known reverse debugger attempts to date.

    0 讨论(0)
  • 2020-12-02 21:59

    As a amusing historical note, EXDAMS implemented a post-mortem reverse debugging back in the late 60s for MULTICS.

    0 讨论(0)
  • 2020-12-02 22:04

    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.)

    0 讨论(0)
提交回复
热议问题