使用 arm-linux-androideabi-addr2line 工具定位 libunity.so 崩溃问题
arm-linux-androideabi-addr2line 说明:
arm-linux-androideabi-addr2line
是 NDK 自带的调试工具,可以用来分析 so 崩溃时输出的的内存地址。
使用方式:
首先定位工具的路径,并通过 cmd 进入到 arm-linux-androideabi-addr2line
所在的文件夹内,如果是对 Android 开发没有一点经验和概念的小白,比如我,在寻找这个文件的时候就发现自己安了好几个版本的 ndk,不要着急,随便找一个就可以。之后在搜索栏直接搜索这个工具名。
这里我进入的是 ndk-r13b 这个文件夹进行的搜索
之后就是通过 cmd 进入到这个路径
执行命令:
arm-linux-androideabi-addr2line -C -f -e so库文件的路径 具体的内存地址
比如我需要分析的 crash 信息如下:
Caused by: java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000004
Build fingerprint: 'xxxxx 测试信息'
Revision: '0'
pid: 21666, tid: 21847, name: UnityMain >>> xxx 游戏包名 <<<r0 980ae958 r1 00000004 r2 00430000 r3 b11dc6ddr4 980ae958 r5 980ae958 r6 ffffffff r7 980afe78r8 00000000 r9 a4b2ce00 sl 00000001 fp 980ae948ip 002e3688 sp 980ae938 lr 9738a941 pc 978460f8 cpsr 86371100at libunity.006ee0f8(Native Method)at libunity.0023293d(Native Method)at Unknown.fffffffd(Unknown Source:0)
这里显示了 libunity.006ee0f8
和 libunity.0023293d
两个问题,所以 so 库文件就是要使用 libunity.so。为了简便起见,我将这个文件复制到了 F 盘下。
需要执行的命令和结果如下所示:
可以看出是在调用 UnitySendMessage
方法后调用了 JNI_OnUnload
方法,然后就 crash 了。
使用 arm-linux-androideabi-addr2line 工具定位 libunity.so 崩溃问题相关推荐
- Linux驱动之oops错误:addr2line工具定位错误
前言 在编写linux驱动程序时,最让人头疼的,莫不是内核发生了oops错误,并打印了一大堆错误信息如下: Unable to handle kernel NULL pointer dereferen ...
- linux 内核 addr2line,Android或Linux调试addr2line工具锁定命令的使用
关于调试:调试中addr2line命令的使用. 问题引出:i850的wifi定位开启后,在使用goole maps时出现rootfs重启现象,打印的log信息如下: ///////////////// ...
- linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)
ap6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使用到的工具及相关库如下: bluez-libs-3.36 libxml2-2.7.4 dbus-1.0.2 glib- ...
- linux addr2line,定位so文件崩溃代码行数
当我们使用别人的ndk时,可能别人的so文件会崩溃,这个时候需要定位该so文件崩溃的代码的行数,即哪一行.方法如下: 1.找到ndk下面的该目录:D:\IT\AndroidStudio\SDK\ndk ...
- arm linux文件传输工具
1. ssh 1.1 scp 1.2 sftp 2. ftp 2.1 busybox: ftpget ftpput 2.2 busybox: ftpd&tcpsvd 2.3 buildroot ...
- Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)
文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...
- addr2line快速定位进程异常位置
一.addr2line简介 1.addr2line可以通过解析地址来定位异常发生在哪个文件,哪个函数,哪一行:不过只对编译时带-g参数的进程或者库文件有效,因此想使用addr2line定义进程发生cr ...
- linux top交叉编译_Linux 系统下ARM Linux交叉编译环境crosstool工具
Linux系统下ARM Linux交叉编译环境的建立目前流行的有三种途径. 一.使用别人编译好的开发工具链本文引用地址:http://www.eepw.com.cn/article/201611/31 ...
- arm hisiv100 linux,hisiv100交叉编译工具链安装
hisi交叉编译工具链安装 一. 摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...
最新文章
- 解决kubernetes中ingress-nginx配置问题
- python是一种语言吗-Python是一种什么样的编程语言?解释?编译?汇编?机械?...
- 【C 语言】数组 ( 数组相关地址 | 数组首元素地址 | 数组地址 )
- AtCoder Beginner Contest 215 E - Chain Contestant
- qt git linux 安装,git – 如何在Ubuntu上安装QtWebEngine
- Windows-server-2008-R2安装Oracle-11g-R2-dataguard
- 项目管理最佳实践方法_项目管理最佳实践,企业如何进行有效的项目管理
- Spring-Data-Redis存储对象(redisTemplate)
- python 动态类型性能_动态且强类型的Python
- lintcode:Add Binary 二进制求和
- 线性插值公式简单推导
- ERP系统实施之入门
- VMware虚拟机安装Ubuntu 2022最新版详细图文安装教程(VMware虚拟机安装+Ubuntu下载+VMware虚拟机配置运行)
- Html怎么判断ie5,css怎样判断IE浏览器?
- win10下局域网不同电脑间如何实现文件共享?
- 基于Java的截图工具
- E+H超声波物位计FMU42
- android接入即时IM(接入亲加通信云)
- 摄像头码流怎么设置_【干货】一个无线网桥可以带多少个摄像头?
- 删除多余迅雷7插件,加快启动速度