Call Stack简介
2010-11-04 08:44:04 来源:WEB开发网核心提示:· 修改你的Visual Studio窗口布局,如下图(这是我喜好的风格)首先修改右上角的Columns列,Call Stack简介(2),这里我修改为4,以便于每次stack的操作,所以不管下面代码是否实际使用,都保留上,我们能更清楚地看到,其次在Address对应的那个输入框上
· 修改你的Visual Studio窗口布局,如下图(这是我喜好的风格)
首先修改右上角的Columns列,这里我修改为4,以便于每次stack的操作,我们能更清楚地看到。
其次在Address对应的那个输入框上,输入@esp,然后按回车。
上面的窗口为Disassembly窗口,当前断点所在处为push ebp
上面的窗口为Registers窗口,显示几个重要的寄存器。
代码说明
代码由Prologue、代码call和Epilogue组成。
Prologue
PUSH EBP |
保存old Frame Pointer地址到栈上 |
MOV EBP,ESP |
保存当前栈地址,因为下面要修改栈地址 |
SUB ESP, 0C0H |
预留出C0个字节的空间,供本地变量及其他使用。如编译器的对栈的检查,如Edit & Continue。后面我们修改这些设置,就会发现预留空间的变化。 |
PUSH EBX |
这三个寄存器经常用,所以不管下面代码是否实际使用,都保留上。这是编译器的行为。 |
PUSH ESI |
|
PUSH EDI |
更多精彩
赞助商链接