崩溃转储完成通知

时间:2011-10-04 09:50:05

标签: windows process analysis crash-dumps

我强行崩溃进程并尝试分析崩溃转储。 我面临着崩溃进程和崩溃转储生成(刷新)之间的竞争条件。

如果崩溃转储太大,那么需要一些cputime,Windows调试器(或watson)中是否有任何回调函数可以告诉崩溃转储完成?

或者是否有任何机制可以通过它强制刷新崩溃转储并开始分析。

我不是在寻找基于民意调查的解决方案。

1 个答案:

答案 0 :(得分:0)

  1. 添加WER注册表项
  2. 崩溃过程
  3. 运行您自己编写的工具 3a)找到werfault.exe进程和 3b)加入该过程(等到它完成)
  4. 分析转储文件
  5. 步骤3b不使用轮询。进程是一个发出信号的同步对象。

    请注意,步骤3a在崩溃之前不起作用,如果崩溃转储很小,则werfault.exe可能已经退出,因此它可能会永远等待。要绕过此操作,您可能希望将应用程序注册为werfault.exe的调试器,该调试器在内部将参数转发给werfault.exe,然后等待它完成。

    完整的序列如下所示:

    1. 添加WER注册表项
    2. 为werfault.exe添加调试器条目
    3. 崩溃过程
    4. 您的应用程序将运行,而不是werfault.exe。 4a)启动werfault.exe以创建转储和 4b)加入该过程(等到它完成)
    5. 如果您不想永久保存它,可能会删除调试器条目
    6. 分析转储文件
    7. 最后我会说你可以通过一些实施工作来实现你的目标。问题是:这将节省多少秒,实施需要多少小时?