Android addr2line和 c++filt使用
![](https://i-blog.csdnimg.cn/blog_migrate/3cbe1bc2ebe7206cebbae5eecf9cde56.png)
1.查看crash函数位置
# arm-linux-androideabi-addr2line -f -e out/target/product/xxx/symbols/system/lib/libaudioroute.so 00001254
注意:-f:函数名
-e:默认so文件
2.如果addr2line看到是乱码的函数名,可以使用c++filt转换
# aarch64-linux-android-c++filt _ZL21deinterleaveAudioDataPsS_j
deinterleaveAudioData(short*, short*, unsigned int)
注意:路径在 symbols/system下,这个没有经过strip
![](https://i-blog.csdnimg.cn/blog_migrate/ba2911f5772988647cf0e0f2f3868523.png)
3.定位kernel crash位置
//addr2line
# aarch64-linux-android-addr2line -f -e out/target/product/msmxxx/obj/kernel/msm-3.18/vmlinux ffffffc000a7c768
//objdump
# aarch64-linux-android-objdump -D out/target/product/msmxxx/obj/kernel/msm-3.18/vmlinux | tee kernel_dump.txt