ARMv7 寄存器详解大全( 八 )
通过上两图 , 我们假设在函数b里面发生了异常 , 比如是SEGV异常 。
1、通过读取寄存器R13和R7我们可以得到R13 = 0x0800(栈顶) R7 = 0x1000 。
2、通过栈的布局情况我们了解到 , FP + 4为上一个函数的返回地址LR 。 在b崩溃的时候 , LR的值是*0X1004 = 0x300 , 即这个0x300就是a函数调用b函数的时候的下一条指令地址 。
3、通过栈的布局情况我们了解到 , fp则存放的是上一个函数fp的地址 。 因此 , 我们可以拿到a函数的fp地址:*0x1000 = 0x2000 。
4、重复2 3 步骤 , 我们可以获取到t函数调用a函数的时候的下一条指令地址:0x500 。
因此 , 崩溃时候的调用栈是:
点击(此处)折叠或打开
-
b函数
-
0x300 (a函数)
推荐阅读
- 原神|原神:阿贝多有什么用?兼顾副C与辅助,三大作用机制详解
- |《哈利波特: 魔法觉醒》学院活动保护南瓜攻略详解教程
- 碧蓝航线|碧蓝航线SR重巡福煦数据详解 期待越高失望越大 强度平平无奇
- fate grand order|fgo五星降临者梵高强度详解 暴击队最强天拐核心 从此刀刀烈火
- steam|阴阳师铁鼠新皮肤详解 对弈竞猜破产风格 玩家遭遇天台局的现状
- 伊利丹·怒风|魔兽TBC:伊利丹招牌技能,“剪切”机制详解,盾坦闭眼都能抗?
- 假面骑士|假面骑士live腰带官方详解 蝙蝠拔刀和拔枪 加油枪和手持吸尘器
- 神之手|黑暗特利迦裂口双形态能力详解 暴热神之手与闪电高速涡轮冲击
- 射击|魔兽TBC:猎人输出手法,“5511机制”详解,与抽筋宏有何区别?
- 三国志|三国志战略版6套T0天花板共存配置,阵容克制和被克制详解!