7

使用 VS2013 Pro 在调试 MFC 程序时,我无法使用“编辑并继续”。我创建了一个新的 MFC 项目进行测试。

操作系统是 Windows 7 64 位,我正在运行 Visual Studio 2013 12.0.30110.00 Update1。

根据Tools->Options->Debugging->Edit and ContinueEnable Edit and Continue检查过。我已经取消选中它并检查了它,但是每当我在调试时修改代码时,我都会收到以下消息:

源文件已更改。它不再与用于构建正在调试的应用程序的文件版本匹配。

基本上我没有更改任何设置,除了标签大小,我已经将键盘映射方案设置为 VC6。

我缺少什么设置来启用编辑和继续?

4

8 回答 8

8

默认情况下,本机代码禁用“编辑并继续”。启用:

  1. 工具菜单上,单击选项
  2. 在“选项”对话框中,打开“调试”节点,然后选择“编辑并继续”类别。
  3. 仅本机选项组中,选择启用本机编辑并继续

编辑:测试本机编辑并继续的步骤正在工作:

  1. 开始 VS 2013
  2. 创建一个新的 MFC 项目:
    • 文件->新项目-> MFC 应用程序->确定
    • 在 MFC 应用程序向导上选择完成。
  3. 构建并开始调试:
    • 构建->构建解决方案
    • 调试->开始调试
  4. 闯入程序:
    • 调试->打破所有
  5. 进行代码更改:
    • 打开 OutputWnd.cpp 并找到 COutputWnd::OnSize(第 80 行)
    • 在函数的开头插入这一行:cx = cx / 2;
  6. 继续执行:
    • 调试->继续
  7. 调整应用程序窗口的大小以在底部的“输出”窗格中查看代码更改的效果。它的宽度应该是所需尺寸的一半。
于 2014-04-02T03:33:32.077 回答
3

编辑并继续也是每个项目的设置。

  1. 必须在 C++ -> General -> Debug Information Format 下的编译器选项中设置:“Program Database for Edit And Continue (/ZI)”
  2. 此外,必须更改链接器设置。链接器必须使用增量链接。Linker -> General -> Enable Incremental Linking = Yes 或(对于 VC 2012 用户)C++ -> All Options -> Enable Function-Level Linking = Yes (/Gy)

有关详细信息,请阅读MSDN

于 2014-03-12T09:44:48.380 回答
1

我完成了上述所有步骤,但没有任何帮助(谢谢大家)。

我的解决方案是:

项目 -> 属性 -> 链接器 -> 高级:

“图像具有安全异常处理程序”= NO(/SAFESEH:NO)

应用、确定和重建项目。

希望能帮助到你。

于 2015-01-29T16:18:22.453 回答
1

最后一个提示有帮助,但我们不得不

设置“图像具有安全异常处理程序”= NO(/SAFESEH:NO)

在我们解决方案的所有项目中!

于 2015-01-30T14:29:15.457 回答
1

为了它的价值,我也一直在把头发拉出来。我终于得到了编辑并通过更改以下设置继续工作:

项目>属性>链接器>所有选项>“图像具有安全的异常处理程序”。

它被设置为否 (/SAFESEH:NO)。我进去删了。我没有将其设置为“是”或“否”。我只是保持空白。我很想知道空白意味着什么。但是编辑和继续现在对我有用。也许它会对你有所帮助。

于 2015-09-03T02:59:18.147 回答
1

具有“发布配置”的项目将禁用编辑并继续。

要改变这个

  1. 打开“配置管理器”
  2. 将项目的配置从发布更改为调试
  3. 重建和调试项目
于 2016-08-19T16:54:38.150 回答
0

如果您的项目的平台工具集设置为 Visual Studio 2012 (v110),而不是通常的 Visual Studio 2013 (v120),“编辑并继续”也将不起作用。

此设置位于项目 > 配置属性 > 常规 > 平台工具集中。

于 2014-09-10T06:21:37.610 回答
0

此问题的解决方案在 Microsoft 文档中...

如果 IntelliTrace 已启用并且您同时收集 IntelliTrace 事件和呼叫信息,则“编辑并继续”将被禁用。

在 Visual Studios 的菜单上,进入 Tools>>options - 选择“IntelliTrace”选项卡并让IntelliTrace 事件只选中.. 保存,重新启动 Visual Studio 并......

您的“编辑并继续”将再次起作用!

于 2014-11-13T18:37:13.150 回答