0

当我点击 X 按钮关闭一个程序(比如说它是 MYAPP)时,弹出一个对话框说:

MYAPP 已停止工作

Windows 可以在线检查问题的解决方案。”

但实际上应用程序已经退出。

错误信息:

    Problem signature:
      Problem Event Name:   APPCRASH
      Application Name: MYAPP.EXE
      Application Version:  1.0.0.0
      Application Timestamp:    56a8dfa8
      Fault Module Name:    MSVCP90D.dll
      Fault Module Version: 9.0.30729.6161
      Fault Module Timestamp:   4dace5bf
      Exception Code:   c0000005
      Exception Offset: 00007b3f
      OS Version:   6.3.9600.2.0.0.272.7
      Locale ID:    3081

Windows 如何检测程序是否“停止工作”?它是否表明应用程序抛出异常或死锁?

4

1 回答 1

1

Windows 错误报告 (WER) 将捕获未处理的异常。它不会陷入僵局。当程序“停止工作”时弹出的对话框是 WER 故障转储(或者它与 MS 服务器通信以查看它是否要进行故障转储等)。

有几种方法可以调试崩溃的程序,这些方法是经过验证的(虽然很费力)。其中一些包括:

  • 使用 GFlags 启动 Visual Studio 或 WinDbg
  • 在程序中包含代码以启动调试器

在这种情况下,使用 WER,您可以打开本地故障转储,然后,只要您有符号数据库 (pdb) 文件,就可以从本地故障转储进行调试。您可以在Collecting User-Mode Dumps阅读更多关于获取本地故障转储的信息。

于 2016-02-09T16:39:52.307 回答