Debugging WinDBG ESP和EIP

Debugging WinDBG ESP和EIP,debugging,windbg,Debugging,Windbg,我正在尝试使用WinDBG了解我的应用程序中引发的异常的底部,在堆栈的开头有以下内容: 04a4f25c 746fc477 System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object, Boolean) PARAMETERS: state = <no data> timedOut = <no data> LOCALS:

我正在尝试使用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] 
04a4f25c 746fc477系统线程。_ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object,布尔值)
参数:
状态=
timedOut=
当地人:
04a4f3ec 74b91b5c[GCFrame:04a4f3ec]

我可以看到ESP堆栈指针(04a4f25c和04a4f3ec)和EIP指令指针(746fc477和74b91b5c),是否有WinDBG命令,或者我可以找到该线程是如何启动的?

!CLRStack将向您显示托管堆栈。然而,由于这是一个ThreadPoolWaitorTimeCallback,所以它可能不在您自己的代码中。您应该调查回调的队列位置。

从调用堆栈中,我假设您可能没有查看引发异常的线程。你试过发行:
~*e!CLRStack
!线程
?这将为您提供保存异常上下文的线程的信息。然后,您可以使用
~s
命令切换到该线程,并进行进一步研究