20

我正在用 C++ 编写一个无法使用 F5 调试的类。代码将从另一个调用它的“服务”运行。过去我曾经使用过__debugbreak(),当我得到一个窗口告诉我抛出异常时,选择对其进行调试。

最近我已经更新到 Windows 7 并且它一直工作了一段时间。

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

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

4

4 回答 4

26

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

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

虽然这更多的是 IT 解决方案/问题,但我整天都被这个问题所困扰,并希望与遇到此问题的其他开发人员分享解决方案。

于 2009-06-25T14:33:07.523 回答
14

我终于在这里找到了适用于 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

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

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

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

"C:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld

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

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
于 2018-07-08T14:43:12.210 回答
1

在这种情况下...

http://community.codesmithtools.com/blogs/blake/archive/2009/06/03/tips-amp-tricks-debugging-codesmith-on-microsoft-windows-7.aspx

以下是在 Microsoft Windows 7 机器上启用调试所需执行的快速概述:

更新即时调试器设置 DbgJITDebugLaunchSetting。该设置位于注册表中[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
将 DbgJITDebugLaunchSetting 的值设置为 2。如果您使用的是 64 位操作系统,则还必须将此文件夹中的相同密钥 (DbgJITDebugLaunchSetting) 设置[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]为 2。如果遇到任何问题,请尝试以管理员身份运行 CodeSmith Studio 和 Visual Studio。现在,当 CodeSmith 进入断点时,您将看到如下内容:

于 2009-06-25T14:13:48.980 回答
-1

您可以尝试调试>附加到进程。

于 2009-06-25T14:02:34.243 回答