调试unhandled level 2 translation fault 程序bug

本文探讨了如何在Linux环境下,通过反汇编和addr2line工具追踪程序中的空指针异常,从源代码行数定位问题,并提供了解决过程。关键步骤包括反汇编文件分析和使用addr2line获取错误源位置。

错误现象:

反汇编源程序:

在通过上面命令产生的反汇编文件obj中找PC所在的地址:

用Linux命令addr2line 得到出错位置在源文件中的行数

 

最终发现是访问了空指针

root@X55:/tmp/deco_debug# cat /tmp/work_mode {"work_mode":"HAP","link2ap":0,"net_type":"HAP","level":0}root@X55:/tmp/deco_debug# [awnd_scan_handle_rootap:5979]: fail to get 2g ROOTAP from 5g RO[69604.303999] awnd[3494]: unhandled level 1 translation fault (11) at 0x00000028, esr 0x92000005 [69604.308001] pgd = ffffffc0103ab000 OTAP. [69604.316600] [00000028] *pgd=0000000000000000, *pud=0000000000000000 [69604.326999] [69604.327159] CPU: 0 PID: 3494 Comm: awnd Tainted: P 4.4.60 #6 [69604.328734] Hardware name: Qualcomm Technologies, Inc. IPQ5018/AP-MP03.3 (DT) [69604.335495] task: ffffffc01c3b5000 ti: ffffffc01c3b5000 task.ti: ffffffc01c3b5000 [69604.342965] PC is at 0x7f914bd77c [69604.350417] LR is at 0x558269bc90 [69604.353514] pc : [<0000007f914bd77c>] lr : [<000000558269bc90>] pstate: 20000000 [69604.357004] sp : 0000007fc232fdb0 [69604.364382] x29: 0000007fc232fdb0 x28: 00000055826dd898 [69604.372566] x27: 00000000000004a4 x26: 0000007fc2330040 [69604.377982] x25: 0000000000000000 x24: 00000055826ddd95 [69604.383157] x23: 00000055826db000 x22: 00000055826e1360 [69604.388551] x21: 0000000000000000 x20: 0000000000000001 [69604.393760] x19: 0000007fc232fef0 x18: 0000000000080000 [69604.399062] x17: 0000007f914bd770 x16: 00000055826db9e8 [69604.404338] x15: 0037442358ba5111 x14: 0000000000000000 [69604.409645] x13: 0000000000000000 x12: 0000000000000018 [69604.414948] x11: 0000000037442358 x10: 00000000544f0000 [69604.420228] x9 : 0000000000000278 x8 : 0000007fc232fc70 [69604.425511] x7 : 0000000000000000 x6 : 0000007fc232f3c8 [69604.430896] x5 : 0000000000000000 x4 : 0000000000000000 [69604.436123] x3 : 0000000000000000 x2 : 0000000000000006 [69604.441410] x1 : 00000055826dffc8 x0 : 0000000000000028 [69604.446874] root@X55:/tmp/deco_debug#
最新发布
08-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值