【发布时间】:2012-08-14 18:33:35
【问题描述】:
我已将 ADPlus / cdb 设置为我机器上的默认即时调试器。当任何进程出现未处理的异常或因任何其他原因崩溃时,我希望 ADPlus 为我生成故障转储。我正在使用 ADPlus 配置文件来设置输出目录并运行用于将 dmp 文件推送到云端的预命令。
为了测试以确保它有效,我编写了一个非常简单的程序,该程序会引发未处理的异常并崩溃。 ADPlus 总是像它应该的那样附加自己,但它只成功地生成了我想要的转储,大约 15 次。在不更改系统上的任何内容的情况下,我背靠背运行崩溃的程序并获得不同的结果。
大多数时候,我从 cdb 收到以下错误:
0:000> g
^ No runnable debuggees error in 'g'
0:000>
*[EOF]*
当它正常工作时,日志中的相同位置如下所示:
0:004> g
FirstChance_epr_Process_Shut_Down
*[More stuff after here]*
知道为什么我会出现这种行为吗?如果有帮助,我可以发布我的配置文件和完整日志。 when-it-works 日志和 when-it-doesn't-work 日志之间的唯一区别是行都以 0:004> 开头(当它工作时)和 0:000>(当它不工作时)。
【问题讨论】:
-
当 ADPlus 转储进程时......它应该异步执行此操作。但是,快速连续多次崩溃您的进程...可能会导致问题?...尝试跟踪成功转储之间的时间段...并查看是否存在模式,并检查 .dmp 文件的时间戳.
-
也作为使用 ADPlus 的替代方法...尝试 DebugDiag 在发生崩溃时转储您的进程...您可能会得到更好的结果。 microsoft.com/en-us/download/details.aspx?id=26798 ... blogs.msdn.com/b/tess/archive/2009/03/20/… .... 或 ProcDump ... technet.microsoft.com/en-US/sysinternals/dd996900.aspx
-
windowsdebugging.wordpress.com/2012/03/14/… .... 您是在创建小型转储还是完整转储?
-
时间戳似乎没有模式 - 有时我可以在几秒钟内获得转储,有时我无法在运行崩溃的应用程序的数十秒内获得转储一遍又一遍。我特别喜欢 ADPlus 的是我可以在外部配置文件中配置的前置和后置命令。 DebugDiag 有这样的东西吗?我正在生成完整的转储。
标签: debugging windbg sos adplus