可能重复:
双向(或反向)调试
我查过全知调试器(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 n
和down n
来选择(n
)帧up
或down
。
也许这会有所帮助。
对于linux,建议使用GDB
,而对于Windows,windbg
更好。