在使用Visual Studio进行调试时如何返回到上一行?

17

我正在使用Visual Studio调试一段代码,但忘记记录已经观察到的值。是否可以在不重新运行整个代码的情况下返回上一行?虽然类似的问题在SO上有人问过,但在我的情况下,代码并没有运行出错或异常,它正常运行。

3个回答

29

在断点暂停后,右键单击要“返回”的行。 从弹出的菜单中选择“设置下一条语句”。

这将调整指令指针以从指定的代码行继续执行,但不会将任何变量或内存地址回滚到它们在原始执行该代码行之前的值。


14
听起来你想要做的是倒带/重放代码而不仅仅是移动到特定行。你可以移动到特定行,只需右键单击并选择“设置下一条语句”。不幸的是,这不会将程序状态回退到某个过去的点(除了设置堆栈和进行少量回退)。
要倒带/重放,您需要有点诡计。一些选项包括:
  • VMWare replay,它允许您录制并返回到某个时间点。
  • Intellitrace。我没有尝试过,但它允许您回放到某个点。
这有点笨重,现在也不能帮助你。

我只希望在SO上能够设置多个答案为“已采纳”。顺便说一句,这确实有所帮助。谢谢。 - Srujan Barai
1
@SrujanBarai - 很高兴能帮助你。祝你好运。 - acarlon

8
您可以使用鼠标拖动指向“下一个要执行的语句”的黄色箭头。这实际上会改变将要执行的语句。虽然不能保证一定有效,但只要代码不太复杂,就有可能成功。

它会回滚我所监视的变量和指针的值吗? - Srujan Barai
@SrujanBarai 很抱歉,我不确定;但我从未使用过这个功能。 - Angew is no longer proud of SO
下一个答案无论如何都回答了这个问题。所以很遗憾它并没有! - Srujan Barai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接