了解WinDBG!clrstack命令的输出

时间:2012-01-11 09:25:56

标签: debugging windbg

也许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>

有人知道 ESP EIP 下的价值是什么?此外,PARAMETERS和LOCALS下的值,例如 this = 0x01207574 ,是否给出调用方法的对象的值?或者它意味着什么呢?

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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