Debugging WinDBG ESP和EIP
我正在尝试使用WinDBG了解我的应用程序中引发的异常的底部,在堆栈的开头有以下内容: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:
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
命令切换到该线程,并进行进一步研究