如何解决Windbg中的GetFrameContext失败

问题描述:

我正在使用完整的崩溃转储和Windbg调试.NET 4.0 Web应用程序。我似乎能够得到一切的所有版本但是相匹配,当我试图让所有的线程管理的堆栈跟踪我得到如何解决Windbg中的GetFrameContext失败

OS线程ID:0x7cd4(13) 儿童SP IP呼叫网站 GetFrameContext失败:1

对于我所有的托管线程。任何想法我做错了,我该如何解决它?

+0

您能解决吗? – shashi

你如何显示托管堆栈?你应该使用sos或sosex(最好是sosex)。 !sosex.mk是否适合您?

here下载sosex。

如果您使用windbg来调试.net,您希望sosex来做到这一点。

+0

我想我使用'.loadby sos clr' – jglouie

您是否尝试过安装Psscor4 WinDbg扩展名?这里有一些very useful article关于如何做到这一点。

我也遇到这个错误,但我注意到运行!DumpStack确实给了我一个痕迹,当!ClrStack没有。

根据此link它可能只是一个已安排但未运行的线程。换句话说不一定是问题。我不知道为什么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