可能重复:
双向(或反向)调试
我查看了 Omniscient Debugger ( http://www.lambdacs.com/debugger/ODBDescription.html ),但它特定于 Java。对于本机应用程序,即 C/C++,是否有任何具有相同功能的调试器?
我还没有说清楚。我想打破虚假数据值/代码路径,然后“回滚”,向后调试,直到在代码/逻辑/设计中找到错误。
我知道我可以“向前”一步一步地调试,我想向后做同样的事情,所以调试器需要在每一步中保存它的上下文。
可能重复:
双向(或反向)调试
我查看了 Omniscient Debugger ( http://www.lambdacs.com/debugger/ODBDescription.html ),但它特定于 Java。对于本机应用程序,即 C/C++,是否有任何具有相同功能的调试器?
我还没有说清楚。我想打破虚假数据值/代码路径,然后“回滚”,向后调试,直到在代码/逻辑/设计中找到错误。
我知道我可以“向前”一步一步地调试,我想向后做同样的事情,所以调试器需要在每一步中保存它的上下文。
除了检查 x86 目标上已经提到的过去指令的堆栈跟踪之外,较新的 gdb 还支持记录的程序执行和后退,这应该非常接近您正在寻找的内容。
GDB 7.0 版(2009 年 9 月到期)将是 gdb 的第一个支持反向调试的公开版本(能够使被调试的程序单步执行并反向继续)
附录:
Visual Studio 2010 及更高版本支持“历史调试”(“IntelliTrace”):
我认为您应该将 GDB 用于 C/C++。您有一些堆栈跟踪选项,您将能够在程序中设置断点并逐步运行它。
查看http://www.cs.cmu.edu/~gilpin/tutorial/#3.5 或在网上查找其他教程。
希望能帮助到你。
gdb
有命令up n
和down n
选择(n
)帧up
或down
。
可能这会有所帮助。