1、ntdll!ZwWaitForSingleObject
线程被挂起,如果下面跟着是这样子:
RetAddr : Args to Child : Call Site 00000000`7766e518 : 00000000`ffffffff 00000000`00000000 00000000`00000000 00000000`1019d8e0 : ntdll!ZwWaitForSingleObject+0xa 00000000`7766e40b : 000007fe`00000000 00000000`09e7f300 00000000`00000000 000007fe`f1a3d4e8 : ntdll!RtlpWaitOnCriticalSection+0xe8 000007fe`f140f174 : 00000000`0a0ab120 00000000`0000000a 000007fe`f1a3d4e8 00000000`0a0ab120 : ntdll!RtlEnterCriticalSection+0xd1 000007fe`f1821433 : 00000000`00000001 00000000`0a0ab120 ffffffff`fffffffe 00000000`09e7f300 : mscorwks!UnsafeEEEnterCriticalSection+0x20 000007fe`f128563b : 000007fe`f1a3d4e8 000007fe`f12a7266 000007fe`e7fafc23 00000000`09e7f300 : mscorwks!CrstBase::Enter+0x123 000007fe`f1299f5a : 00000000`00000001 00000000`09e7f300 00000000`00000001 00000000`09e7f300 : mscorwks!UnManagedPerAppDomainTPCount::DispatchWorkItem+0x1bb 000007fe`f124b3ac : 00000000`00000000 00000000`00000000 00000000`0ae0fbc0 00000000`00000000 : mscorwks!ThreadpoolMgr::WorkerThreadStart+0x1ba 00000000`7751652d : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : mscorwks!Thread::intermediateThreadProc+0x78 00000000`7764c541 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0xd 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x1d
那么线程是在等待进入临界区,有可能是死锁引起的。
如果下面跟着是这个样子:
RetAddr : Args to Child : Call Site 000007fe`fd6d10dc : 00000000`09e7e7c8 00000000`0b93384f 00000000`00000000 00000000`00000002 : ntdll!ZwWaitForSingleObject+0xa 000007fe`f128d0e0 : 00000000`ffffffff 00000000`ffffffff 00000000`00000000 00000000`00000454 : KERNELBASE!WaitForSingleObjectEx+0x79 000007fe`f128d1e3 : 00000000`00000000 00000000`09e7e760 00000000`00000000 00000000`ffffffff : mscorwks!MethodTableBuilder::MethodSignature::GetMethodAttributes+0xa8 000007fe`f13c3cc1 : 00000000`00000001 00000000`00000000 00000000`00000000 00000000`0b8f87c1 : mscorwks!CLREvent::WaitEx+0x63 000007fe`f1820de1 : 00000000`0efe4a78 00000000`00000000 00000000`1044ef60 00000000`0a1dc670 : mscorwks!SVR::GCHeap::WaitUntilGCComplete+0x31
那说明此线程在等待GC释放,极有可能是内存除了问题导致GC如此猛烈。