如何启用窗口错误报告 (WER) 对话框。总新手问题
Posted
技术标签:
【中文标题】如何启用窗口错误报告 (WER) 对话框。总新手问题【英文标题】:How to enable the Window Error Reporting (WER) dialog. Total newbie question 【发布时间】:2011-08-28 07:03:32 【问题描述】:在第一次设置 WinQual 和 WER 后,我故意在发布版本中插入了一个崩溃,期望\希望获得 WER 对话,但仍然得到包含“运行时错误!应用程序已请求运行时终止的对话”以一种不寻常的方式……”。
关于 WinQual 的设置,一切似乎都正常工作(以及所有支持的符号服务器、源服务器、WinQual 帐户、提交的映射文件并验证它们是否存在于我的 WinQual 帐户)。现在我想验证转储文件是否已创建并提交给 WinQual,我可以检索它们进行调试。
我确认我的电脑 (XP Pro SP3) 的错误报告已启用(系统属性-错误报告)。我认为困难的部分是设置所有内容,而不是让程序实际显示 WER 对话。需要对exe或PC进行一些修改吗?
【问题讨论】:
【参考方案1】:您无需在应用程序中执行任何操作即可使其正常工作。我怀疑你不知何故设法以某种奇怪的方式崩溃,这与 WER 配合得不太好。尝试在应用程序初始化后添加崩溃,而不是在应用程序启动期间(如果您正在这样做)。我通常会这样做:
int* p=0;
*p=1;
另一种可能性是,由于 Visual Studio 的 Just In Time 调试器,您的计算机不会为您提供与最终用户相同的结果,因此请在典型的最终用户计算机上尝试。还有一种可能是你的机器是 XP 并且 WER 支持在 XP 的早期阶段并且在 Vista 和 Win7 中更好,所以尝试在较新的机器上崩溃应用程序。
【讨论】:
【参考方案2】:很高兴知道我可能没有(完全)疯了。没错,外部问题导致 WER 对话出现问题。
我将崩溃更改为上面的代码,以防万一我的版本太残酷,并在三台机器上运行应用程序,并且似乎存在 Visual Studio 和/或即时调试,在 XP 和Win7,正在影响 WER 对话。对于任何感兴趣的人,这就是我所看到的:
带有 Visual Studio 的 XP。被要求选择一个调试器,如果我选择了否,程序退出,没有 WER 对话。 没有 Visual Studio 的 XP。显示 WER 对话框并发送错误报告(是的)。 Win7 与 Visual Studio。完全没有崩溃。 没有 Visual Studio 的 Win7。我尚未测试,但怀疑它会正常运行。正如您所暗示的,崩溃代码和不具代表性的测试环境的组合阻碍了我的测试。
非常感谢!
【讨论】:
仅供参考,我有 Windows 7 和 Visual Studio,当我的应用程序崩溃时,它们会提供“在线检查解决方案”的提议,这意味着与 WER 交谈。如果您愿意,我可以为您检查我的设置。这些是调用 Environment.FailFast 的托管应用程序。【参考方案3】:如果您使用的是 WinForms 应用程序,它的事件循环中有一个 catch 处理程序,它会弹出一个对话框并阻止 Windows 错误报告 (WER) 启动。
此调用可防止这种情况发生。 (http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/176b7f8c-3efb-4e6f-8deb-c685c62629db/)
修复魔法线:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
【讨论】:
以上是关于如何启用窗口错误报告 (WER) 对话框。总新手问题的主要内容,如果未能解决你的问题,请参考以下文章