trace32 恢复call back function
首先查看寄存器内容
R13是当前栈顶,查看R13的dump信息,并往下找尾数为奇数的值,这种就是非正常地址,因为arm中4字节对其,尾数应该都为偶数,如下图标黄的部分
然后依次分析每一个非正常值,先看第一个0x 700010A3,点击右键,选择indiret list
然后显示该行上面有bl 跳转指令,后面后func name,该func就是发生fatal时的function 名字
func1.png
同样的方法,查看第二个非正常值的indirect list,同样的方式可以确认上一级func是msg_send
然后显示该行上面有bl 跳转指令,后面后func name,该func就是发生fatal时的function 名字
继续查看第三个标黄值,确认上一级是msg_send5
但是该func没有push且返回R14的指令,说明该func在一个func的内部中,继续往上查找push指令,发现上一级func name
继续确认第4个值,并往上找上一级func
查找第5个非正常值
第6个非正常值
第7个值
最后得到call back func list为,恢复完成,再详细定位细节即可
some images couldn’t copy out…