Visual Studio 2015 F5 无法附加到进程

Visual Studio 2015 F5 无法附加到进程

这就是我正在做的事情:

  1. 将 C++ 项目设置为启动项目
  2. 建造
  3. 设置多个断点
  4. 按 F5

正确的项目已启动,断点显示为有效且已加载(实心红色圆圈),Visual Studio 在标题栏中显示“正在运行”,调试工具栏已激活,但程序不会在断点处停止。

如果我使用附加到进程功能,选择“托管(v4.6,v4.5,v4.0)代码,本机代码”,程序会在断点处停止,我可以正确调试。

有人有任何解决或排除故障的技巧吗?

顺便说一句(我不知道这些问题是否相互关联),我的 F11(步入)键也不起作用,我尝试重置 Visual Studio 设置,但并没有解决问题。

[编辑] 如果我需要在准备好用户交互之前调试代码,我需要设置一些东西来阻止程序,直到我可以附加到该进程。

答案1

现在我希望了解您需要什么。

看一下方法Debugger.Launch 方法():

启动调试器并将其附加到进程。

你需要这个方法Debugger.Break 方法():

向附加的调试器发出断点信号。

因此,您可以在入口点之后直接在源代码中使用它,如下所示:

#if DEBUG
                Debugger.Launch();
                Debugger.Break();

                MainForm.Show();
#else
              // nothing to do
#endif

您的程序将在此时停止,然后您就可以调试了!

答案2

最后通过以下方式修复了它(我不知道这是否是最好的方法,但它对我有用)

进入Visual Studio调试选项(以下两种方式都会在选项对话框中打开相同的页面)

  • 调试 > 选项
  • 工具 > 选项 > 调试 > 常规

然后在此页面中务必禁用:

  • 启用“仅我的代码”

然后确保启用

  • 使用托管兼容模式
  • 使用本机兼容模式

现在转到附加到进程对话框:

  1. 调试 > 附加到进程 > 附加到 > 选择
  2. 现在选择“托管(v4.6,v4.5,v4.0)代码”,“本机代码”和“托管兼容性代码”

然后对于要调试的每个项目:

  1. 右键单击 > 属性 > 调试 > 调试器类型
  2. 将值设置为:“混合”

现在按 F5 键,所有托管和非托管断点都应该处于活动状态!!!

相关内容