如何为我的应用程序 (cpp) 重新激活 Windows 错误报告?(视窗 10)



TLDR

当我的一个应用程序执行_CrtDbgBreak()它只是写入一个.dmp文件并退出时。在任何其他导致应用程序_CrtDbgBreak()的应用程序上.exe已停止工作- 对话框,我可以选择在其中闯入调试器 (VS 2013(。

这是我想要的行为。

背景

几周前,我尝试了Windows错误报告,以了解是否可以/如何抑制WER对话框。显然,我的应用程序成功了,不幸的是,我没有找到撤消此操作的方法。

与此同时,我不得不处理许多其他事情,以至于我不再记得我当时到底采取了哪些步骤。(应该做笔记,我知道。由于它适用于其他应用程序,因此我猜测需要重置特定于我的应用程序的设置。

我转向了机器上常见的嫌疑人,但到目前为止我还没有找到任何东西:

  • HKCU\软件\Microsoft\视窗\视窗错误报告
  • HKLM\软件\Microsoft\视窗\视窗错误报告
  • 策略编辑器:计算机配置\管理模板\Windows 组件\Windows 错误报告
  • 策略编辑器:用户配置\管理模板\Windows 组件\Windows 错误报告
  • WER 服务正在运行

我什至从整个注册表中删除了可执行文件名称的所有出现,但这没有任何区别。我还错过了什么?

一个可能的原因是您的应用/exe 已添加到 WER 的排除列表中。请参阅 https://learn.microsoft.com/en-us/windows/desktop/wer/wer-settings 中的"排除的应用程序"。

https://learn.microsoft.com/en-us/windows/desktop/api/Werapi/nf-werapi-weraddexcludedapplication

在以下位置检查注册表:HKEY_LOCAL_MACHINE\软件\Microsoft\Windows\Windows 错误报告\排除的应用程序

如果在此处找到您的应用/exe 名称,请将其删除。

也许你会设置进程错误模式,就像这样

SetErrorMode(SEM_NOGPFAULTERRORBOX);

(见 https://learn.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-seterrormode(

[是的 - 问题已过时,但未标记为已回答,此替代解决方案可能会对未来的读者有所帮助]

最新更新