托管线程退出之后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   lbq1221119  阅读(1022)  评论(3编辑  收藏  举报

    编辑推荐:
    · 如何编写易于单元测试的代码
    · 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
    · .NET Core 中如何实现缓存的预热?
    · 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
    · AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
    阅读排行:
    · 周边上新:园子的第一款马克杯温暖上架
    · Open-Sora 2.0 重磅开源!
    · 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
    · Ollama——大语言模型本地部署的极速利器
    · [AI/GPT/综述] AI Agent的设计模式综述

    导航

    统计

    点击右上角即可分享
    微信分享提示