Debugging 了解WinDBG的输出!clrstack命令

Debugging 了解WinDBG的输出!clrstack命令,debugging,windbg,Debugging,Windbg,也许StackOverflow不是回答这个问题的地方,但是如果我在错误的地方,也许有人可以给我指出一个更好的论坛。我想更好地理解一些WinDBG命令的输出,这个的输出!clrstack是: 0:008> !clrstack -a OS Thread Id: 0xe30 (8) ESP EIP 04a4f108 7776f871 [HelperMethodFrame: 04a4f108] 04a4f1ac 73ee70ec System.Diagnostics.E

也许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>
0:008>!clrstack-a
操作系统线程Id:0xe30(8)
电子稳定程序
04a4f108 7776f871[帮助方法框架:04a4f108]
04a4f1ac 73ee70ec System.Diagnostics.EventLog.get_EntryCount()
参数:
这=
当地人:
04a4f1bc 73df24e2 System.Diagnostics.EventLog.CompletionCallback(System.Object)
参数:
此参数=0x01207574
上下文=
当地人:
0x04a4f1d8=0x001c73b7

有人知道ESPEIP下的值对应于什么吗?另外,参数和局部变量下的值,例如this=0x01207574,是否给出了调用该方法的对象的值?还是它意味着什么?

以下是对您的问题的一些回答:

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

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

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


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

以下是一些问题的答案:

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

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

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

局部变量提供函数中局部变量的地址和值