2016-08-12 58 views
-1

我知道我正在處理一個託管線程,但我從來沒有設法讓!clrstack工作。我總是得到:!clrstack從不報告任何東西

0:000> !clrstack 
OS Thread Id: 0xaabb (0) 
Child SP  IP Call Site 
GetFrameContext failed: 1 
00000000 00000000 

誠然,我可以使用!dumpstack但我無法弄清楚如何使它顯示參數。它只顯示ChildEBP,返回地址和函數名稱。除此之外,它還混合了託管和非託管調用,我只想關注託管部分。

UPDATE

按照要求由托馬斯,!clrstack -i回報:

0:000> !clrstack -i 
Loaded c:\cache\mscordbi.dll\53489464110000\mscordbi.dll 
Loaded c:\cache\mscordacwks_x86_x86_4.0.30319.34209.dll\5348961E69d000\mscordacwks_x86_x86_4.0.30319.34209.dll 



Dumping managed stack and managed variables using ICorDebug. 
================================================================= 
Child SP IP  Call Site 
003ad0bc 77d1f8e1 [NativeStackFrame] 
Stack walk complete. 

其進步:-)

+0

相關:http://stackoverflow.com/questions/22316393/windbg-clrstack –

+0

相關:http://stackoverflow.com/questions/7878112/how-to-i-resolve-getframecontext-failed-in-windbg –

+0

@ThomasWeller第一個鏈接導致第二個,我沒有看到一個很好的解決方案。我確實有sosex並已加載它。應該幫助我嗎? – ForeverLearning

回答

0

請張貼從dumpstack或K輸出仔細檢查調用堆棧,你知道!clrstack只顯示託管代碼調用堆棧,但是有時,如果託管線程完成了這項工作,如果你使用線程池,它將在CLR代碼(信號量)中等待l,剩下的調用堆棧變成完全不受管理的調用stack.so!clrstack不顯示任何內容。