【问题标题】:Understanding output of WinDBG !clrstack command了解 WinDBG !clrstack 命令的输出
【发布时间】:2012-02-07 16:01:26
【问题描述】:

也许 StackOverflow 不是这个问题的地方,但如果我在错误的地方,那么也许有人可以将我指向一个更好的论坛。我想更好地理解一些WinDBG命令的输出,这个!clrstack的输出是:

0:008> !clrstack -a

OS Thread Id: 0xe30 (8)

ESP      EIP     
04a4f108 7776f871 [HelperMethodFrame: 04a4f108] 

04a4f1ac 73ee70ec System.Diagnostics.EventLog.get_EntryCount()
    PARAMETERS:
    this = <no data>
    LOCALS:

04a4f1bc 73df24e2 System.Diagnostics.EventLog.CompletionCallback(System.Object)
PARAMETERS:
    this = 0x01207574
    context = <no data>
LOCALS:
    0x04a4f1d8 = 0x001c73b7
    <no data>
    <no data>

有人知道ESPEIP下的值对应什么吗?另外,PARAMETERS和LOCALS下的值,比如this = 0x01207574,是不是给出了调用该方法的对象的值?还是有别的意思?

【问题讨论】:

    标签: debugging windbg


    【解决方案1】:

    以下是您问题的一些答案:

    ESP = 指向堆栈头部的堆栈指针寄存器(向下增长)。

    EIP = 指令指针(又名程序计数器)指向内存中当前执行的指令(向上增长)。

    Parameters 显示函数调用 (System.Object) 的参数在内存中的位置。

    Locals 为您提供函数中局部变量的地址和值。

    【讨论】:

      猜你喜欢
      • 2015-01-18
      • 2023-04-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多