需要用到AndroidStdio自带到addr2line工具,从backtrace中得到堆栈地址和so名称
1、addr2line工具的路径放在
" /Users/name/Library/Android/sdk/ndk/16.1.4479499/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin"下
2、backtrace中得到堆栈地址和so名称
比如so为libxxxx.so
堆栈信息为 00000000001771f0 0000000000176224 0000000000177648 0000000000148200 0000000000147f9c 0000000000147f3c 000000000018ceac 000000000018cc64 00000000001fa6b4
3、执行如下命令
./aarch64-linux-android-addr2line -C -f -e /Users/name/Downloads/libs/arm64-v8a/libxxxx.so 00000000001771f0 0000000000176224 0000000000177648 0000000000148200 0000000000147f9c 0000000000147f3c 000000000018ceac 000000000018cc64 00000000001fa6b4
注意这里的SO文件需要含有符号表
-C -f //打印错误行数所在的函数名称
-e //打印错误地址的对应路径及行数
执行完命令即可得到对应的函数堆栈信息,然后将更新代码到对应版本号即可
4、查看so文件的uuid
执行命令 file XXX.so