搜索logcat里带backtrace开始部分,或者tombstone里的内容
arm-linux-androideabi-addr2line -C -f -e so文件 16进制地址 (32位)
aarch64-linux-android--addr2line -C -f -e so文件 16进制地址 (64位)
so文件是带符号表的 (也就是编译时带-g)
addr2line、objdump在mac下的路径为
/Users/name/Library/Android/sdk/ndk/version/toolchains/llvm/prebuilt/darwin-x86_64/bin
linux下路径为
/home/***/android-ndk-rxxx/toolchains/llvm/prebult/linux-x86_64/bin/llvm-addr2line or aarch64-linux-android--addr2line(64bit) arm-linux-androideabi-addr2line(32bit)
llvm-objdump, aarch64-linux-android-objdump(64bit)arm-linux-androideabi-objdump(32bit)
objdump -S -D so文件 >dump.txt
dump.txt包含汇编文件
打开dump.txt搜索16进制地址 需要会读arm/arm64的汇编
adb logcat > crash.log
ndk-stack -sym so文件路径 -dump crash.log
ndk-stack在mac下的路径为
/Users/name/Library/Android/sdk/ndk/version/
或者是/Users/name/Library/Android/sdk/ndk/version/prebuilt/darwin-x86_64/bin