Как разрешить GetFrameContext не удалось в Windbg

Я отлаживаю веб-приложение .NET 4.0, используя полный аварийный сброс и Windbg. Кажется, я могу получить все версии всего, чтобы соответствовать друг другу, но когда я пытаюсь получить трассировку управляемого стека из всего потока, который я получаю

OS Идентификатор потока: 0x7cd4 (13) Детский SP-сайт IP-вызова Ошибка GetFrameContext: 1

Для всех моих управляемых потоков. Любые идеи, что я делаю неправильно, и как я могу это исправить?

Ответ 1

Я тоже получал эту ошибку, но я заметил, что работает! 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

Ответ 2

Как вы пытаетесь отобразить управляемый стек? Вы должны использовать sos или sosex (желательно sosex). Работает ли !sosex.mk для вас?

Загрузите sosex из здесь.

Если вы используете windbg для отладки .net, вы хотите, чтобы sosex это сделал.