前言

不常用,偶尔需要,在学习JNI时也学习addr2line工具的使用,记录于此,方便自己查阅。

正文

addr2line工具在AndroidNDK包中,我这里以Window版的为例。

我这下载的是

android-ndk-r21d-windows-x86_64.zip

解压和环境配置我这不解释。

由于不同的平台,用的addr2line不一样,混乱用的话容易出现我遇到的提示

File format not recognized

这个就时我so库是arm64-v8a的,但用了arm-linux-androideabi-addr2line.exe去定位!~_~

armabiv7a

\android-ndk-r21d-windows-x86_64\android-ndk-r21d\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin

下的

arm-linux-androideabi-addr2line.exe

看清楚目录咯!!!

arm-linux-androideabi-4.9

arm64-v8a

\android-ndk-r21d-windows-x86_64\android-ndk-r21d\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin

下的

aarch64-linux-android-addr2line.exe

看清楚目录咯!!!

aarch64-linux-android-4.9

addr2line定位

有so库平台不一样,使用的addr2line也不一样,但操作命令一样

# armabiv7a
arm-linux-androideabi-addr2line.exe -f -e  {so库的绝对路径} {address}

# arm64-v8a
aarch64-linux-android-addr2line.exe -f -e  {so库的绝对路径} {address}

Window环境

参考文章

  1. 【Android NDK 开发】NDK C/C++ 代码崩溃调试 – Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )

  2. 使用addr2line工具将C层的地址转成具体的错误行号

相关文章

暂无评论

none
暂无评论...