1 栈帧
我们知道,发生函数调用时,通常被调用函数会保存调用函数的现场,然后才会继续执行被调用函数的指令,被调用函数执行完成之后,就会恢复调用函数的现场,继续执行调用函数的指令。栈帧就是在堆栈中保存每一次函数调用现场的一个基本单元。每一次函数调用都会在堆栈中记录函数的栈帧。
2 汇编指令
下面我们反汇编下DbugExcShowAll函数,得到如下的反汇编代码。
DbugExcShowAll:
0x103e48cc 9421ffd0 stwu r1,-48(r1)
0x103e48d0 7c0802a6 mfspr r0,LR
0x103e48d4 93810020 stw r28,32(r1)
0x103e48d8 93a10024 stw r29,36(r1)
0x103e48dc 93e1002c stw r31,44(r1)
0x103e48e0 90010034 &