如何在Windbg中解决GetFrameContext失败

Mar*_*ark 12 windbg .net-4.0 crash-dumps stack-trace

我正在使用完整的崩溃转储和Windbg调试.NET 4.0 Web应用程序.我似乎能够获得所有的所有版本以匹配,但是当我尝试获得所有线程的托管堆栈跟踪时

操作系统线程ID:0x7cd4(13)子SP IP呼叫站点GetFrameContext失败:1

对于我所有的托管线程.我有什么想法我错了以及如何解决它?

Avn*_*ner 5

我也遇到了这个错误,但是我注意到,当!ClrStack没有运行时,运行!DumpStack确实可以给我跟踪。

根据此链接,它可能只是一个已调度但未运行的线程。换句话说,不一定是问题。我不确定为什么clrstack命令不起作用,可能是sos错误?

0:037> !clrstack
OS Thread Id: 0x57cc (37)
Child SP         IP               Call Site
GetFrameContext failed: 1
0:037> !dumpstack
OS Thread Id: 0x57cc (37)
Child-SP         RetAddr          Call Site
000000000772f688 000007fefdb210dc ntdll!NtWaitForSingleObject+0xa
000000000772f690 000007fef5ca36ca KERNELBASE!WaitForSingleObjectEx+0x79
000000000772f730 000007fef5ca3a97 clr!CLRSemaphore::Wait+0xaa
000000000772f7f0 000007fef5ca3c20 clr!ThreadpoolMgr::UnfairSemaphore::Wait+0x140
000000000772f830 000007fef5cb21ff clr!ThreadpoolMgr::NewWorkerThreadStart+0x2a7
000000000772f8d0 000007fef5cb0582 clr!ThreadpoolMgr::WorkerThreadStart+0x3b
000000000772f970 00000000778d652d clr!Thread::intermediateThreadProc+0x7d
000000000772fb30 0000000077b0c521 kernel32!BaseThreadInitThunk+0xd
000000000772fb60 0000000000000000 ntdll!RtlUserThreadStart+0x1d
Run Code Online (Sandbox Code Playgroud)


小智 3

您打算如何显示托管堆栈?您应该使用 sos 或 sosex(最好是 sosex)。!sosex.mk对你有用吗?

从这里下载 sosex 。

如果您使用 Windbg 来调试 .net,则需要 sosex 来执行此操作。