【问题标题】:Retain Windows Error Reporting Dumps from Hung Application保留挂起的应用程序的 Windows 错误报告转储
【发布时间】:2008-12-10 22:27:27
【问题描述】:

应用程序偶尔会挂起,我想当时查看转储以解决问题。我编写了一个应用程序,用户可以运行它来自动创建我可以查看的转储。但是,无论我尝试什么,我似乎都无法让用户记住在它挂起时运行它。他们总是最终关闭调用 Windows 错误报告的程序。

WER 将在临时目录中创建转储,但不幸的是,一旦关闭用于将信息发送给 Microsoft 的对话框,它们就会被删除。

成为 ISV 并从 Microsoft 的错误报告服务器获取此信息是一种解决方案。但目前还不是现实的解决方案。

我无法想象我是唯一面临这个问题的人。该软件由数十名员工同时使用,因此请联系他们并让他们运行应用程序,或者在运行其他应用程序或其他应用程序没有解决之前不要单击该对话框的关闭。

该应用程序在 Windows Server 2003 上运行。太糟糕了,因为我知道 Server 2008 有一些 LocalDumps 选项可以让我保留它们。

有什么想法可以以某种方式保留这些转储以便我分析它们吗?障碍是用户,从某种意义上说,我已经接受了他们的固执,不希望他们运行任何其他应用程序或做任何特别的事情。

感谢您的建议!

【问题讨论】:

    标签: debugging windows-server-2003 dump freeze windows-error-reporting


    【解决方案1】:

    您可以选择自动解决方案。我相信您可以使用多种选择来检测您是否被挂起。

    一种方法是在应用程序中的一个单独线程中使用 SendMessageTimeout(还要注意 SMTO_ABORTIFHUNG 作为 fuFlags 值之一)。一旦你确定主线程没有响应,你可以在任何你想要的地方保存一个转储文件。 从 w2k 开始,还有一个 IsHungAppWindow() (user32.dll) 可用。

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多