android addr2line 用法,Android studio中NDK开发(四)——使用addr2line分析Crash日志

一、前言

在NDK开发中经常会出现应用Crash的情况,而JNI层的报错信息,不像Java层报错信息那样可以直接在日志中看到错误的行数,JNI层中出现的错误直接看根本定位不到错误的位置。通常来说,JNI报的基本都是堆栈信息,需要NDK的一些工具进行地址转换,转换后即可看到错误的位置。这些地址转换的工具有addr2line、ndk-stack等,我比较喜欢addr2line,平时也用这个工具进行调试。

二、分析

错误信息如下:

A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

A/DEBUG: Build fingerprint: 'xiaomi/mido/mido:7.0/NRD90M/V10.1.1.0.NCFCNFI:user/release-keys'

A/DEBUG: Revision: '0'

A/DEBUG: ABI: 'arm'

A/DEBUG: pid: 29290, tid: 29290, name: e.hasee.ndkdemo >>> com.example.hasee.ndkdemo <<<

A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------

A/DEBUG: r0 00000000 r1 0000726a r2 00000006 r3 00000008

A/DEBUG: r4 f6cbc590 r5 00000006 r6 f6cbc538 r7 0000010c

A/DEBUG: r8 12e45dc0 r9 f3f88000 sl ff90e8ec fp f3f88000

A/DEBUG: ip 00000058 sp ff90e5f8 lr f5c3a2c7 pc f5c3cb48 cpsr 200f0010

A/DEBUG: backtrace://堆栈信息,只需要关注这部分就好

A/DEBUG: #00 pc 00049b48 /system/lib/libc.so (tgkill+12)

A/DEBUG: #01 pc 000472c3 /system/lib/libc.so (pthread_kill+34)

A/DEBUG: #02 pc 0001d565 /system/lib/libc.so (raise+10)

A/DEBUG: #03 pc 000190b1 /system/lib/libc.so (__libc_android_abort+34)

A/DEBUG: #04 pc 00017114 /system/lib/libc.so (abort+4)

A/DEBUG: #05 pc 0009063f /data/app/com.example.hasee.ndkdemo-2/lib/arm/libthird.so

你可能感兴趣的:(android,addr2line,用法)