受支持的代码更改

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用 主题适用 主题不适用

标准版

主题不适用 主题不适用 主题适用 主题不适用

专业团队版

主题不适用 主题不适用 主题适用 主题不适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

“编辑并继续”处理大多数类型的代码更改。但是,在程序执行期间,某些更改无法应用。若要应用这些更改,必须停止执行并生成新版本的代码。

在调试会话期间不能应用下列 C/C++ 更改:

  • 大多数的全局或静态数据的更改。

  • 从其他计算机复制并且未在本地生成的可执行文件的更改。

  • 影响一个对象(如类的数据成员)布局的数据类型的更改。

  • 添加超过 64k 字节的新代码或数据。

  • 添加要求在指令指针前存在构造函数的变量。

  • 影响需要运行时初始化的代码的更改。

  • 在某些实例中,添加异常处理程序。

  • 资源文件的更改。

  • 只读文件中的代码更改。

  • 没有相应 PDB 文件的代码的更改。

  • 没有对象文件的代码的更改。

如果进行了上面某项更改,然后试图应用代码更改,“输出”窗口中就会出现错误或警告信息。

  • “编辑并继续”不更新静态库。如果您更改了静态库,仍会继续执行老版本,且不显示任何警告。

不支持的方案

在以下调试方案中,“编辑并继续”不可用:

  • 在 Windows 98 上调试。

  • 混合模式(本机/托管)调试。

  • SQL 调试。

  • 调试 Dr. Watson 转储。

  • 在未选择“在未处理的异常上展开调用堆栈”选项的情况下,在发生未处理的异常之后编辑代码。

  • 调试嵌入式运行时应用程序或 Compact Framework(智能设备)项目。

  • 使用“附加到”来调试应用程序,而不是单击“调试”菜单上的“开始”来运行应用程序。

  • 调试优化后的代码。

  • 当目标为 64 位应用程序时,调试托管代码。如果想要使用“编辑并继续”,必须将目标平台设置为 x86 (“项目 属性”->“编译”选项卡 ->“高级编译器”设置)。

  • 如果由于生成错误无法生成新版本的代码,则对旧版本的代码进行调试。

请参见

概念

编辑并继续

参考

“选项”对话框 ->“调试”->“编辑并继续”