也许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 ,是否给出调用方法的对象的值?或者它意味着什么呢?
答案 0 :(得分:4)
以下是您的问题的一些答案:
ESP =堆栈指针寄存器指向堆栈的头部(向下增长)。
EIP =指令指针(又名程序计数器)指向内存中当前执行的指令(向上增长)。
参数显示函数调用(System.Object)参数在内存中的位置。
Locals为您提供函数中局部变量的地址和值。