1、 找到崩溃记录的tombstone,在系统/data/tombstones目录下,根据文件创建时间,确定崩溃创建的是哪个tombstone。

2、 在tombstone中找到backtrace位置。左边红框崩溃时的堆栈地址,右边红框是引起崩溃的so库。

3、找到编译ndk对应的工具addr2line。如ndk-r14b,使用的是
/opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line,可自己在服务器设置export变量。
4、 在服务器上找到jni编译时,生成在对应obj目录的so库文件,如~/media/trunk_media/jni,对应的obj目录是~/media/trunk_media/obj/local/armeabi-v7a。
在该目录下输入命令,即可定位哪一行出现问题。
/opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9
本文介绍了Android13.0系统中遇到的NDK崩溃问题的定位步骤。首先,从/data/tombstones目录找出崩溃的tombstone文件,然后通过tombstone的backtrace分析堆栈地址和相关so库。接着,利用addr2line工具,配合NDK(例如ndk-r14b)来定位问题,最后在jni的obj目录下通过addr2line命令确定出错的具体代码行。
订阅专栏 解锁全文
2436

被折叠的 条评论
为什么被折叠?



