有没有一个调试器可以让我在代码中后退一步

Is there a debugger that lets me step backwards through the code?

本文关键字:代码 退一步 有一个 调试器      更新时间:2023-10-16

可能重复:
双向(或反向)调试

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

我还没说清楚。我想破解伪造的数据值/代码路径,然后"回滚",向后调试,直到我在代码/逻辑/设计中发现错误。

我知道我可以"向前"一步一步地调试,我想向后做同样的事情,所以调试器需要在每个步骤中保存其上下文。

除了堆栈跟踪来检查x86目标上已经提到的过去的指令外,较新的gdb还支持记录的程序执行和后退,这应该非常接近您想要的。

  • http://sources.redhat.com/gdb/news/reversible.html

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

附录:

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

  • http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/16/how-does-vs2010-historical-debugging-work.aspx

  • http://msdn.microsoft.com/en-us/library/dd264915%28v=vs.100%29.aspx

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

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

希望能有所帮助。

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

也许这会有所帮助。

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