【问题标题】:WinDBG ESP and EIPWinDBG ESP 和 EIP
【发布时间】:2012-01-11 10:10:15
【问题描述】:

我正在尝试使用 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 命令或者无论如何我可以找出这个线程是如何启动的?

【问题讨论】:

    标签: debugging windbg


    【解决方案1】:

    !CLRStack 将显示托管堆栈。但是,由于这是一个 ThreadPoolWaitOrTimerCallback,它可能不在您拥有的代码中。你应该调查你在哪里排队回调。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 2015-04-07
        • 1970-01-01
        • 2011-08-23
        • 2014-08-30
        • 1970-01-01
        相关资源
        最近更新 更多