ril崩溃时的出错地址定位

使用下面的方法进行出错位置定位,前提是可以在Log中找到出错地址

./prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-addr2line -e out/target/product/kunlun/symbols/system/lib/libviatelecom-withuim-ril.so -f 2868

2868 是main log打出的地址,类似下面的一段log

11-09 12:14:46.174 I/DEBUG   ( 1367):          #00  pc 00015ca4  /system/lib/libc.so
11-09 12:14:46.174 I/DEBUG   ( 1367):          #01  pc 00013614  /system/lib/libc.so
11-09 12:14:46.174 I/DEBUG   ( 1367):          #02  pc 000144da  /system/lib/libc.so
11-09 12:14:46.174 I/DEBUG   ( 1367):          #03  pc 00002868  /system/lib/libril.so
11-09 12:14:46.174 I/DEBUG   ( 1367):          #04  pc 0000a07c  /system/lib/libril.so
11-09 12:14:46.174 I/DEBUG   ( 1367):          #05  pc 00004f02  /system/lib/libril.so
11-09 12:14:46.182 I/DEBUG   ( 1367):          #06  pc 0000542a  /system/lib/libril.so
11-09 12:14:46.182 I/DEBUG   ( 1367):          #07  pc 00005aaa  /system/lib/libril.so
11-09 12:14:46.182 I/DEBUG   ( 1367):          #08  pc 00006570  /system/lib/libril.so
11-09 12:14:46.182 I/DEBUG   ( 1367):          #09  pc 00005ede  /system/lib/libril.so
11-09 12:14:46.182 I/DEBUG   ( 1367):          #10  pc 000118e4  /system/lib/libc.so
11-09 12:14:46.182 I/DEBUG   ( 1367):          #11  pc 000114b0  /system/lib/libc.so


上面其实是出错时候的调用堆栈,那么可以看到 libril.so 的函数 的地址 2868处出错了,执行后
root@desktop-ubuntu:# ./prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-addr2line -e out/target/product/productname/symbols/system/lib/libril.so -f 2868
oemRequestSendCdmaSMS
hardware/xxx/xxxx/xxxxxx/mmmmmmmm.c:462

则明确给出了出错的地方,mmmmmmmm.c 的 462 行~

原文地址:https://www.cnblogs.com/flyme/p/2308679.html