计算保存的ebp,eip和当前ebp

时间:2014-08-03 19:39:17

标签: stack-trace

我对“当前的ebp”与“已保存的ebp”的存在感到有点困惑。

当查看具有参数x的给定堆栈帧时,它在概念上是不是这样的:

0x8(%ebp) - parameter 1
0x4(%ebp) - eip here
%ebp - saved ebp

所以你可以通过做& parameter - 8之类的东西来获得保存的ebp?

如果保存的那个位于堆栈中的那个位置,那么“当前的ebp(我猜某个堆栈帧的ebp)”是什么?

1 个答案:

答案 0 :(得分:1)

是的,这是对的。

当前EBP值是当前EBP寄存器中的值。您可以使用它来从调用帧,参数,本地(如果有)和返回地址(如果需要)访问堆栈上保存的EBP。