2016-08-12 3 views
-1

Я знаю, что имею дело с управляемой нитью, но мне никогда не удавалось получить !clrstack для работы. Я всегда получаю:! Clrstack никогда ничего не сообщает

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

Правда я мог бы использовать !dumpstack, но я не могу понять, как сделать его показать аргументы. Он отображает только ChildEBP, Return Address и имя функции. Кроме того, он смешивает управляемые и неуправляемые вызовы, и я хотел бы сосредоточиться только на управляемых частях.

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 или к перепроверить стек вызовов, вы знаете, что в clrstack отображается только столбец управляемого кода, однако иногда, если управляемый поток завершил эту работу, его можно было бы ожидать в коде CLR (семафор), если вы используете поток poo l, а оставшийся стек вызовов становится полностью неуправляемым вызовом stack.so! clrstack ничего не отображает для него.

Смежные вопросы