2011-10-24 20 views
11

フルクラッシュダンプとWindbgを使用して.NET 4.0 Webアプリケーションをデバッグしています。私は、すべてのスレッドの管理スタックトレースを取得しようとすると、しかし私は、一致するすべてのもののすべてのバージョンを取得することができるように見える私が手WindbgでGetFrameContextを解決する方法

OSスレッドID:0x7cd4(13) 託児SP IPコールサイト GetFrameContextが失敗しました:1

すべての管理対象スレッド。どのようなアイデアを私は間違ってやっていると私はそれを修正することができますか?

+0

これを解決できましたか? – shashi

答えて

2

管理スタックをどのように表示しようとしていますか? sosまたはsosex(好ましくはsosex)を使用する必要があります。 !sosex.mkはあなたのために働いていますか?

hereからsosexをダウンロードしてください。

windbgを使用して.netをデバッグする場合は、sosexがそれを実行するようにします。

+0

私は '.loadby sos clr'を使ったと思います – jglouie

0

Psscor4 WinDbg拡張機能をインストールしましたか?これを行う方法については、very useful articleをご覧ください。

3

私もこのエラーが出ていましたが、私が気づいたのは、DumpStackを実行すると、私には痕跡が残っていました!ClrStackはそうではありません。

これによれば、それはスケジュールされているが実行されていないスレッドである可能性があります。つまり、必ずしも問題ではありません。私は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 
関連する問題