是否有一个调试器让我倒退代码?

时间:2012-08-27 20:08:14

标签: c++ c debugging

  

可能重复:
  Bidirectional (or reverse) debugging

我查找了Omniscient Debugger(http://www.lambdacs.com/debugger/ODBDescription.html),但它特定于Java。是否有任何调试器具有与本机应用程序相同的功能,即C / C ++?

我没有说清楚。我想打破虚假的数据值/代码路径,然后“回滚”,向后调试,直到我在代码/逻辑/设计中发现错误。

我知道我可以“向前”逐步调试,我想向后做同样的事情,因此调试器需要在每一步中保存其上下文。

5 个答案:

答案 0 :(得分:8)

除了用于检查x86目标中已经提到的过去指令的堆栈跟踪之外,新的gdb还支持recorded program execution and stepping backwards,它应该与您正在寻找的内容非常接近。

答案 1 :(得分:6)

        

GDB 7.0版(2009年9月到期)将是第一个公开发布   gdb支持反向调试(制作程序的能力)   正在调试步骤并继续反向)

附录:

Visual Studio 2010及更高版本支持“历史调试”(“IntelliTrace”):

答案 2 :(得分:2)

我认为你应该使用GDB for C / C ++。 您有一些堆栈跟踪选项,您将能够在程序中设置断点并逐步运行它。

查看http://www.cs.cmu.edu/~gilpin/tutorial/#3.5或在网络上查找其他教程。

希望它有所帮助。

答案 3 :(得分:0)

gdb有命令up ndown n来选择(n)帧updown

这可能会有所帮助。

答案 4 :(得分:-2)

建议使用Linux GDB,而对于Windows windbg则更好。