受支持的代码更改
“编辑并继续”处理大多数类型的代码更改。但是,在程序执行期间,某些更改无法应用。若要应用这些更改,必须停止执行并生成新版本的代码。
在调试会话期间不能应用下列 C/C++ 更改:
大多数的全局或静态数据的更改。
从其他计算机复制并且未在本地生成的可执行文件的更改。
影响一个对象(如类的数据成员)布局的数据类型的更改。
添加超过 64k 字节的新代码或数据。
添加要求在指令指针前存在构造函数的变量。
影响需要运行时初始化的代码的更改。
在某些实例中,添加异常处理程序。
资源文件的更改。
只读文件中的代码更改。
没有相应 PDB 文件的代码的更改。
没有对象文件的代码的更改。
如果进行了上面某项更改,然后尝试应用代码更改,**“输出”**窗口中就会出现错误或警告信息。
- “编辑并继续”不更新静态库。如果您更改了静态库,仍会继续执行老版本,且不显示任何警告。
不支持的方案
C/C++ "编辑并继续"不可用在以下调试方案:
调试 windows 存储 apps 或组件。
在 Windows 98 上调试。
混合模式(本机/托管)调试。
javascript 调试。
SQL 调试。
调试转储文件。
在未选择**“在未经处理的异常上展开调用堆栈”**选项的情况下,在发生未经处理的异常之后编辑代码。
使用**“附加到”来调试应用程序,而不是单击“调试”菜单上的“开始”**来运行应用程序。
调试优化后的代码。
调试托管或本机代码,而不是在目标为 64 位应用程序。如果希望使用“编辑并继续”,必须将目标平台设置为 x86(项目属性,编译 选项,高级编译器 设置)。
如果由于生成错误无法生成新版本的代码,则对旧版本的代码进行调试。