WinDBG ESP и EIP - PullRequest
       22

WinDBG ESP и EIP

0 голосов
/ 11 января 2012

Я пытаюсь докопаться до исключения, сгенерированного в моем приложении с помощью WinDBG, в начале стека есть это:

04a4f25c 746fc477 System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object, Boolean)
    PARAMETERS:
    state = <no data>
    timedOut = <no data>
    LOCALS:
    <no data>
    <no data>

04a4f3ec 74b91b5c [GCFrame: 04a4f3ec] 

Я вижу указатели стека ESP (04a4f25c и 04a4f3ec) и указатели инструкций EIP (746fc477 и 74b91b5c), есть ли команда WinDBG или в любом случае я могу узнать, как был запущен этот поток?

Ответы [ 2 ]

1 голос
/ 11 января 2012

! CLRStack покажет вам управляемый стек. Однако, поскольку это ThreadPoolWaitOrTimerCallback, его, скорее всего, не будет в вашем собственном коде. Вы должны выяснить, где вы ставите обратные вызовы в очередь.

0 голосов
/ 12 января 2012

Из вашего стека вызовов я предполагаю, что вы, вероятно, не смотрите на поток, выдавший исключение. Вы пробовали выдавать: ~*e !CLRStack или !Threads? Это должно дать вам информацию о том, какой поток содержит контекст исключения. Затем вы можете переключиться на этот поток с помощью команды ~<thread_id>s и продолжить расследование.

...