【问题标题】:Detect/Redirect core dumps (when a software crashes) on Windows在 Windows 上检测/重定向核心转储(当软件崩溃时)
【发布时间】:2010-05-26 08:03:55
【问题描述】:

对于我的工作,我需要创建一个服务来检测程序异常终止,而不是向用户显示消息(默认行为),而是将生成的核心转储发送到远程服务器。

我很确定这可以做到,但我完全不知道从哪里开始。 是否有任何 API/注册表设置?

谢谢。

【问题讨论】:

  • 为什么是近距离投票?我的问题是 100% 与编程相关的 oO
  • 你为什么不设置 WinDbg 让它在崩溃时自动创建一个小型转储?然后你就可以使用这个文件了。为什么需要 API?
  • @skwllsp:为什么?因为正如我所说,我根本不知道该怎么做。很高兴我不需要 API,这是一件好事。我将看看 WinDbg:我从未使用过它。谢谢。

标签: windows crash crash-dumps


【解决方案1】:

一种方法是安装Unhandled Exception Filter,然后安装write a minidump,然后您可以将其上传到您选择的某个位置。我不会完全忽视 Windows 错误报告——这是对您自己的任何崩溃报告的补充。如果您的应用程序是公开发布的,那么注册 Windows 错误报告是非常值得的,因为您可以获得有关用户在野外遇到哪些崩溃以及何时修复崩溃的信息,您可以添加响应代码以将它们指向新版本或其他相关信息。

根据您的应用程序在组织中的部署方式,另一个可能有用的工具是在用户机器上运行Adplus,它将收集故障转储。这对于似乎影响单个用户但在开发环境中无法重现的一次性崩溃更有用。

其他一些有用的链接:

【讨论】:

  • 另外,一旦你在自己的机器上恢复了小型转储,使用你构建的所有 pdb 文件设置一个符号服务器,然后在 windbg 中 !analyze -v 命令是你的朋友
  • 另一个值得考虑的选项是桌面错误监控程序,如果它用于内部软件工具:blogs.msdn.com/b/wer/archive/2010/05/30/…
【解决方案2】:

看来我的问题不是显而易见就是愚蠢(两者都是?),但无论如何,经过一些研究,我发现了一些有趣的页面。

以下是我发现有用的链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多