DebugBreak没有破坏

Dro*_*per 16 c++ windows debugging windows-7

我正在用C++编写一个无法使用F5调试的类.代码将从另一个将调用它的"服务"运行.在过去我曾经使用过__debugbreak(),当我有一个窗口告诉我选择了一个异常来调试它.

最近我已经更新到Windows 7,它一直工作了一段时间.

今天,当我试图调试我的代码而不是显示常规对话框,告诉我VSTestHost已停止工作并使我能够调试应用程序时,我得到了一个不同的对话框,建议我将数据发送到microsoft进行分析.

有谁知道如何解决这个问题所以我将能够调试我的代码?

Dro*_*per 23

最后我找到了问题的原因.这是Vista/Win7的原因:

  1. 打开动作中心控件
  2. 转到操作中心设置
  3. 转到问题报告设置
  4. 选择"每次出现问题时,请在检查解决方案之前询问我"

虽然这更像是IT解决方案/问题,但我一直困扰着这个问题,并希望与遇到此问题的其他开发人员共享解决方案.


jp4*_*p48 9

我终于在这里找到了适用于Windows 10的解决方案:https: //docs.microsoft.com/en-us/windows-hardware/drivers/debugger/enabling-postmortem-debugging

还有:https://docs.microsoft.com/en-us/windows/desktop/Debug/configuring-automatic-debugging

要启用自动调试器启动,您应该添加一个注册表值:

  • key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug,value Auto= 1(类型REG_DWORD)

配置的调试器由值Debugger(类型REG_SZ)设置; Visual Studio安装将此设置为:

"C:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld
Run Code Online (Sandbox Code Playgroud)

请注意,在64位操作系统上,这仅适用于64位可执行文件.要在32位可执行文件中启用相同的行为,请在此键中设置相同的值:

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug

  • 这在 Windows 10 上帮助了我(特别是添加“自动”的步骤)。谢谢! (3认同)