0

用 c# 4.0 编写的 Windows 服务,设置 gflags.exe(Global Flags) 以在进程崩溃时保存转储。

但是当我在 windbg 中打开故障转储时,我得到了 0:00> 。我不擅长windbg,我记得Tess的博客说打开故障转储时应该看到发生异常的线程ID,但我看到的是0:00> ...并且!pe没有有用的结果。

使用 !dumpheap -stat,我只能看到几个对象,那么我该如何分析这个转储呢?非常感谢您的帮助。

4

2 回答 2

0

如果您看到使用 !dumpheap -stat 的对象很少,那么很可能此转储生成得太晚,或者生成时间错误。

您可以尝试使用 Debug Diag 或 ADPlus 重新捕获转储(当然您需要在执行此操作之前重置 GFlags 中的更改)。

http://blogs.msdn.com/b/lexli/archive/2009/08/23/when-the-application-program-crashes-on-windows.aspx

于 2011-07-15T03:12:27.390 回答
0

~*e !pe是否输出您感兴趣的异常?漫长的道路是:

!threads
~#s, where # is the number of the thread which has an exception
!pe
于 2013-11-05T14:59:17.817 回答