有没有一个调试器可以让我在代码中后退一步
Is there a debugger that lets me step backwards through the code?
可能重复:
双向(或反向)调试
我查过全知调试器(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
更好。
- 维护unordered_map但同时每一步都需要最低的映射值
- 如何在最后一步使用CryptDecrypt解决NTE_BAD_DATA
- 如何在 C++ 中返回到上一步
- 如何一步一步地正确解释此代码?(编程新手)
- 通过GL_FLOAT,GL_UNSIGNED_INT一步
- (C++)比较两段代码,一段有效,一段无效,无法找出区别
- 将隐式促销添加到复杂类,最后一步
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 检查下一步是检查员
- 用typedeffing模板基类来简化代码是一种好的做法吗
- 改进malloc()算法的下一步是什么
- 如何在c++骰子游戏中存储第一个值,并在下一步进行比较
- 如何一步一步地遍历目录树
- 有没有一个调试器可以让我在代码中后退一步
- 若在下一步中对象被破坏,为什么不自动移动呢
- 第4章 斯特劳斯特鲁普钻头一个具有挑战性的一步(至少对我来说!
- OpenCl代码在一台机器上工作,但我在另一台机器中得到了CL_INVALID_KERNEL_ARGS
- OpenGL代码在一台计算机上运行缓慢(但在其他计算机上则不然)
- 无法理解此代码的最后一步
- 只有当我在 c++ 中按 Enter 键(线程)时,代码如何进入下一步