一:背景
1. 讲故事
前几天有位朋友找到我,说他的窗体程序有卡死现象,让我帮忙看下怎么回事,解决这种问题就需要在卡死的时候抓一个dump下来,拿到dump之后就可以分析了。
二:为什么会卡死
1. 观察主线程
窗体程序的卡死,需要观察主线程此时正在做什么,可以用 !clrstack 命令观察。
0:000:x86> !clrstack
OS Thread Id: 0x4a08 (0)
Child SP IP Call Site
012fe784 0000002b [HelperMethodFrame_1OBJ: 012fe784] System.Threading.WaitHandle.WaitOneNative(System.Runtime.InteropServices.SafeHandle, UInt32, Boolean, Boolean)
012fe868 7115d952 System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean) [f:\dd\ndp\clr\src\BCL\system\threading\waithandle.cs @ 243]
012fe880 7115d919 System.Threading.WaitHandle.WaitOne(Int32, Boolean) [f:\dd\ndp\clr\src\BCL\system\threa
订阅专栏 解锁全文
601

被折叠的 条评论
为什么被折叠?



