Android Native崩溃分析方法记录

Signal含义介绍https://www.mkssoftware.com/docs/man5/siginfo_t.5.asp


Native崩溃堆栈解读

在这里插入图片描述

进程信息:pid表示进程号,tid表示线程号,name表示进程名
错误信号:signal 11表示信号的数字,SIGSEGV表示信号的名字,code 1(SEGV_MAPERR)表示出错代码,fault addr 00000000 表示出错的地址。
寄存器快照:进程收到错误信号时保存下来的寄存器快照,一共有15个寄存器。
堆栈信息:##00表示栈顶,##01调用#00,以此往下都是嵌套的调用关系,直至到栈顶。
#00 pc 00000730 表示出错的地址,后面是库名称,接着后面可以看到函数函数名。

参考:Android Crash之Native Crash分析


分析Native崩溃日志的方法

1. ndk-stack命令

这命令行工具包含在NDK工具的安装目录,和ndk-build和其他一些常用的NDK命令放在一起。
命令:ndk-stack -sym <对应的abi目录> –dump <崩溃日志文件>
注意:要拿对应的abi目录,崩溃信息有abi的(ABI: ‘arm64’)
ndk-stack之后,会有具体报错位置

例如:ndk-stack -sym …/app/build/intermediates/cmake/release/obj/arm64-v8a -dump crash.txt
崩溃信息

2021-09-07 15:09:44.010 18583-18583/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-09-07 15:09:44.010 18583-18583/? A/DEBUG: Build fingerprint: 'google/coral/coral:10/QQ3A.200805.001/6578210:user/release-keys'
2021-09-07 15:09:44.010 18583-18583/? A/DEBUG: Revision: '0'
2021-09-07 15:09:44.010 18583-18583/? A/DEBUG: ABI: 'arm64'
2021-09-07 15:09:44.010 18583-18583/? A/DEBUG: Timestamp: 2021-09-07 15
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值