在第一次设置WinQual和WER之后,我故意在发布版本中插入了一个崩溃,期望\希望得到WER对话但是仍然得到包含“运行时错误的对话框!应用程序已请求运行时终止以一种不寻常的方式......“。
关于WinQual的设置(以及所有支持符号服务器,源服务器,WinQual帐户,提交的映射文件以及验证其存在我的WinQual帐户)似乎一切正常。现在我想验证是否已创建转储文件,提交给WinQual,我可以检索它们以进行调试。
我验证了我的PC(XP Pro SP3)错误报告已启用(系统属性 - 错误报告)。我认为困难的部分是设置上面的所有内容,而不是让程序实际显示WER对话。是否需要对exe或PC进行一些修改?
答案 0 :(得分:1)
很高兴知道我可能不会(完全)疯狂。你是对的,外部问题导致了WER对话的问题。
我将崩溃更改为上面的代码,以防万一我的版本过于残酷,并在三台计算机上运行应用程序,看起来在XP和XP上存在Visual Studio和/或即时调试Win7正在影响WER对话。对于任何感兴趣的人,这就是我所看到的:
正如您暗示的那样,崩溃代码和无代表性测试环境的组合阻碍了我的测试。
非常感谢!
答案 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中更好,所以尝试在新机器上崩溃应用程序。