Windbg在.net性能问题排查hang情况的应用思路

1.使用~*kb 2000 查看本地锁的callstack情况,有sleep的线程关注是否占用锁,有wait等待的线程可能是正在等待锁资源。

2.使用~*e!clrstack 查看.net的callstack。出现..threading.monitor.Enter--->表示该线程可能在等待锁;...threadsleepInternal--->该线程在sleep可能正占用锁;

3.使用!syncblk查看线程中锁的信息。info列表示占用锁的线程ID;

4.使用!ip2md [方法对应的eip地址] 获取托管函数的Method Desc结构信息,并获取Module信息;

5.使用!dumpmodule [module值] 查看方法所在模块信息;

6.使用!savemodule [module值]  d:dumphang.dll下载对应的原代码模块;

对下载的原代码模块反编译检查代码是否有问题。

原文地址:https://www.cnblogs.com/mazj611/p/3435901.html