托管线程退出之后Dump文件特征

抓到一个dump文件之后,很多托管命令不能用,查看托管线程的时候,现如下显示:

image

 

XXXX表示这个托管线程已经被结束了,同时在等待GC的回收。

这个时候,用~[N]s命令来切换线程是不可以的。

如果是Framework 1.1下,可以使用!dumpallexceptions (!dae)来查看所有的Exception。

2.0的SOS下面,咋同样可以使用类似的命令:

image

然后用!pe address打印出相应命令的详细信息。

  • System.ExecutionEngineException
  • System.StackOverflowException
  • System.OutOfMemoryException
  • 这三个异常的信息,是在每个clrstack里面都有的。worker process在创建的时候就有了。

    最后,可以查看某个具体的异常的详细信息:

    image

     

    也可以用一个DDL来打印出所有的同一个类型的Exception的信息:

    0:000> .foreach(myVariable {!dumpheap -type System.ArgumentNullException -short}){!pe myVariable;.echo **}

     

    2008.12.31 夜。

    posted on 2008-12-31 18:13  lbq1221119  阅读(1021)  评论(3编辑  收藏  举报

    导航