arm-linux-androideabi-addr2line
?是 NDK 自带的调试工具,可以用来分析 so 崩溃时输出的的内存地址。
找到了 64 位所需的实用程序。
32-bit
NDK \ toolchains \ arm-linux-androideabi-4.9 \ prebuilt \ windows-x86_64 \ bin \ arm-linux-androideabi- addr2line.exe
64 bits
\ NDK \ toolchains \ aarch64-linux-android-4.9 \ prebuilt \ windows-x86_64 \ bin \ aarch64-linux-android- addr2line.exe
它的名称有点不同 - aarch64-linux-android-addr2line。尽管该实用程序的名称不包含单词arm,但它成功地解密了arm64-v8下的堆栈跟踪,并通常感知arm64-v8的字符
之后就是通过 cmd 进入到这个路径
执行命令:
arm-linux-androideabi-addr2line -f -C -e so库文件的路径 具体的内存地址
比如我需要分析的 crash 信息如下:
需要执行的命令和结果如下所示:
arm-linux-androideabi-addr2line -f -C -e D:\Package\UnityHubSet\2021.3.15f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols\armeabi-v7a\libunity.sym.so 0x6a0d84