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

本文介绍了在Android NDK开发中如何使用addr2line工具来分析Crash日志,通过地址转换定位错误位置。文章详细讲解了从Crash日志中提取关键信息、addr2line的使用方法以及转换示例,帮助开发者快速定位JNI层的错误。
摘要由CSDN通过智能技术生成

一、前言

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值