编辑并继续 (Visual C++)

本文介绍了在 Visual C++ 项目中使用编辑并继续的过程。 请参阅受支持的代码更改和限制 (C++),获取有关“编辑并继续”的限制的信息。

警告

在 Visual Studio Update 3 中引入的“/Zo(增强优化调试)”编译器选项将其他信息添加到 .pdb(符号)文件中,用于未使用“/Od(禁用(调试))”选项进行编译的二进制文件。

/Zo 禁用“编辑并继续”。请参阅如何:调试优化的代码

本文内容

启用或禁用“编辑并继续”的自动调用

如何显式应用代码更改

如何停止代码更改

如何重置执行点

如何使用陈旧代码

启用或禁用“编辑并继续”的自动调用

可以禁用“编辑并继续”的自动调用(通过**“继续”“执行”“单步执行”**命令来调用)。 如果正在编辑不想在当前调试会话中应用的代码,您可能需要这样做。 也可以重新启用“编辑并继续”的自动调用。

  1. 在**“调试”菜单上,选择“选项和设置”**。

  2. 选项对话框中,选择编辑并继续类别。

  3. 在**“编辑并继续”组中,选中或清除“由调试命令调用”**复选框。

    备注

    还可以在使用调试命令以前,让调试器先进行询问,然后再应用代码更改。如果希望询问,请选中“首先询问”复选框。

由于**“由调试命令调用”**是一个工具选项,因此更改此设置将影响处理的所有项目。 更改此设置后,不必重新生成应用程序。 甚至可以在调试时更改此设置。 如果从命令行或从生成文件生成应用程序但在 Visual C++ 环境中调试,则在设置了 /ZI 选项的情况下,仍可以使用“编辑并继续”。

返回页首 本文内容

如何显式应用代码更改

在 Visual C++ 中,“编辑并继续”可以以两种方法应用代码更改。 代码更改可在选择执行命令时隐式应用,也可使用**“应用代码更改”**命令显式应用。

当显式应用代码更改时,程序保持在中断模式下,不会执行。

  • 若要显式应用代码更改,在调试菜单上,选择应用代码更改

返回页首 本文内容

如何停止代码更改

当“编辑并继续”处于应用代码更改的过程中时,您可以停止该操作。

要停止应用代码更改:

  • 调试菜单中选择停止应用代码更改

该菜单项仅在应用代码更改时才可见。

如果选择了改选项,就不会进行任何代码更改。

返回页首 本文内容

如何重置执行点

在“编辑并继续”应用更改时,一些代码更改会使执行点移动到新的位置。 “编辑并继续”尽可能正确地放置执行点,但是并非所有情况下的结果都正确。

在 Visual C++ 中,当执行点发生更改时,会显示一个对话框来告知您此情况。 在继续调试之前,应验证位置是否正确。 如果位置不正确,则使用**“设置下一语句”**命令。 有关详细信息,请参阅设置下一步要执行的语句

返回页首 本文内容

如何使用陈旧代码

在某些情况下,“编辑并继续”无法将代码更改立即应用于可执行文件,但如果您继续调试,则可能会在稍后应用代码更改。 当编辑某个调用当前函数的函数,或将多于 64 个字节的新变量添加到调用堆栈上的函数时,就会发生这种情况。

在这种情况下,调试器会继续执行原始代码(称为“陈旧代码”),直至可以应用更改。 陈旧的代码在单独的源窗口中作为临时源文件窗口显示,并带有一个类似 enc25.tmp 的标题。 编辑过的源继续在原始源窗口中显示。 当您尝试编辑陈旧的代码时,会显示一条警告信息。

返回页首 本文内容

请参见

参考

受支持的代码更改和限制 (C++)