2012-01-11 260 views
0

也许StackOverflow不是这个问题的地方,但如果我在错误的地方,那么也许有人可以指点我一个更好的论坛。我想了解一些的WinDbg命令的输出更好,这的输出clrstack是:了解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 corresspond价值?此外,PARAMETERS和LOCALS下的值(例如this = 0x01207574)是给出调用该方法的对象的值吗?或者这意味着什么?

回答

4

这里有一些问题的答案:

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

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

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

当地人给你的地址和函数中局部变量的值。