反汇编异常定位:
...
task: c2d273e0 ti: c1244000 task.ti: c1244000
PC is at 0xb6ed6e78
LR is at 0x1518a8
pc : [<b6ed6e78>] lr : [<001519f4>] psr: a0000010
sp : b5950e78 ip : 0031b4bc fp : b59510e4
...
出错信息中一般会标记处pc和lr寄存器,pc指向下一条要执行的命令地址,lr保存返回地址
反汇编:arm-linux-objdump -D sctrl > 1.txt
...
001519e8 <thread_destory>:
1519e8: e92d4010
push {r4, lr}
1519ec: e1a04000
mov r4, r0
1519f0: ebfc80b8
bl 71cd8 <_init+0x13ec>
1519f4: e1a00004
mov r0, r4//->lr的位置
1519f8: e3a01000
mov r1, #0
1519fc: e8bd4010
pop {r4, lr}
151a00: eafc808d
b 71c3c <_init+0x1350>
...
从中查找pc和lr的地址,可以找到相关的汇编指令,如果程序带着-g的话还可以带着相关函数名称,据此可以分析产生异常的程序位置