如何启用窗口错误报告(WER)对话框。总新手问题

时间:2011-05-18 18:09:51

标签: winqual windows-error-reporting

在第一次设置WinQual和WER之后,我故意在发布版本中插入了一个崩溃,期望\希望得到WER对话但是仍然得到包含“运行时错误的对话框!应用程序已请求运行时终止以一种不寻常的方式......“。

关于WinQual的设置(以及所有支持符号服务器,源服务器,WinQual帐户,提交的映射文件以及验证其存在我的WinQual帐户)似乎一切正常。现在我想验证是否已创建转储文件,提交给WinQual,我可以检索它们以进行调试。

我验证了我的PC(XP Pro SP3)错误报告已启用(系统属性 - 错误报告)。我认为困难的部分是设置上面的所有内容,而不是让程序实际显示WER对话。是否需要对exe或PC进行一些修改?

3 个答案:

答案 0 :(得分:1)

很高兴知道我可能不会(完全)疯狂。你是对的,外部问题导致了WER对话的问题。

我将崩溃更改为上面的代码,以防万一我的版本过于残酷,并在三台计算机上运行应用程序,看起来在XP和XP上存在Visual Studio和/或即时调试Win7正在影响WER对话。对于任何感兴趣的人,这就是我所看到的:

  • XP with Visual Studio。当被要求选择一个调试器时,如果我选择了No,那么该程序将在没有WER对话的情况下退出。
  • 没有Visual Studio的XP。显示WER对话并发送错误报告(是的)。
  • 使用Visual Studio的Win7。没有崩溃。
  • 没有Visual Studio的Win7。我尚未测试但怀疑它会表现正常。

正如您暗示的那样,崩溃代码和无代表性测试环境的组合阻碍了我的测试。

非常感谢!

答案 1 :(得分:1)

如果您使用的是WinForms应用程序,则会在其事件循环中有一个catch处理程序,它会弹出一个对话框并阻止Windows错误报告(WER)启动。

此调用可防止此情况发生。 (http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/176b7f8c-3efb-4e6f-8deb-c685c62629db/)

需要修复的神奇之处:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);

答案 2 :(得分:0)

在应用程序中不应该做任何事情来使其正常工作。我怀疑你以某种方式设法以某种奇怪的方式崩溃,这与WER不太合作。尝试在应用程序初始化后添加崩溃,而不是在应用程序启动期间(如果这就是您正在进行的操作)。我通常做这样的事情:

int* p=0;
*p=1;

另一种可能性是,由于Visual Studio的Just In Time调试器,您的计算机不会给您与最终用户相同的结果,因此请在典型的最终用户计算机上进行尝试。另一种可能性是你的机器是XP和WER支持在XP的早期阶段,在Vista和Win7中更好,所以尝试在新机器上崩溃应用程序。