WinDBG ESP和EIP

时间:2012-01-11 10:10:16

标签: debugging windbg

我试图在使用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 个答案:

答案 0 :(得分:1)

!CLRStack将显示托管堆栈。但是,由于这是一个ThreadPoolWaitOrTimerCallback,因此很可能不是您拥有的代码。您应该调查排队回调的位置。

答案 1 :(得分:0)

从你调用堆栈我假设你可能没有看到引发异常的线程。您是否尝试过发布:~*e !CLRStack!Threads?这应该为您提供哪些线程保存异常上下文的信息。然后,您可以使用~<thread_id>s命令切换到该线程并进一步调查。