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.006ee0f8libunity.0023293d 两个问题,所以 so 库文件就是要使用 libunity.so。为了简便起见,我将这个文件复制到了 F 盘下。

需要执行的命令和结果如下所示:

可以看出是在调用 UnitySendMessage 方法后调用了 JNI_OnUnload 方法,然后就 crash 了。

使用 arm-linux-androideabi-addr2line 工具定位 libunity.so 崩溃问题相关推荐

  1. Linux驱动之oops错误:addr2line工具定位错误

    前言 在编写linux驱动程序时,最让人头疼的,莫不是内核发生了oops错误,并打印了一大堆错误信息如下: Unable to handle kernel NULL pointer dereferen ...

  2. linux 内核 addr2line,Android或Linux调试addr2line工具锁定命令的使用

    关于调试:调试中addr2line命令的使用. 问题引出:i850的wifi定位开启后,在使用goole maps时出现rootfs重启现象,打印的log信息如下: ///////////////// ...

  3. linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)

    ap6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使用到的工具及相关库如下: bluez-libs-3.36 libxml2-2.7.4 dbus-1.0.2 glib- ...

  4. linux addr2line,定位so文件崩溃代码行数

    当我们使用别人的ndk时,可能别人的so文件会崩溃,这个时候需要定位该so文件崩溃的代码的行数,即哪一行.方法如下: 1.找到ndk下面的该目录:D:\IT\AndroidStudio\SDK\ndk ...

  5. 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 ...

  6. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)

    文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...

  7. addr2line快速定位进程异常位置

    一.addr2line简介 1.addr2line可以通过解析地址来定位异常发生在哪个文件,哪个函数,哪一行:不过只对编译时带-g参数的进程或者库文件有效,因此想使用addr2line定义进程发生cr ...

  8. linux top交叉编译_Linux 系统下ARM Linux交叉编译环境crosstool工具

    Linux系统下ARM Linux交叉编译环境的建立目前流行的有三种途径. 一.使用别人编译好的开发工具链本文引用地址:http://www.eepw.com.cn/article/201611/31 ...

  9. arm hisiv100 linux,hisiv100交叉编译工具链安装

    hisi交叉编译工具链安装 一.         摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...

最新文章

  1. 解决kubernetes中ingress-nginx配置问题
  2. python是一种语言吗-Python是一种什么样的编程语言?解释?编译?汇编?机械?...
  3. 【C 语言】数组 ( 数组相关地址 | 数组首元素地址 | 数组地址 )
  4. AtCoder Beginner Contest 215 E - Chain Contestant
  5. qt git linux 安装,git – 如何在Ubuntu上安装QtWebEngine
  6. Windows-server-2008-R2安装Oracle-11g-R2-dataguard
  7. 项目管理最佳实践方法_项目管理最佳实践,企业如何进行有效的项目管理
  8. Spring-Data-Redis存储对象(redisTemplate)
  9. python 动态类型性能_动态且强类型的Python
  10. lintcode:Add Binary 二进制求和
  11. 线性插值公式简单推导
  12. ERP系统实施之入门
  13. VMware虚拟机安装Ubuntu 2022最新版详细图文安装教程(VMware虚拟机安装+Ubuntu下载+VMware虚拟机配置运行)
  14. Html怎么判断ie5,css怎样判断IE浏览器?
  15. win10下局域网不同电脑间如何实现文件共享?
  16. 基于Java的截图工具
  17. E+H超声波物位计FMU42
  18. android接入即时IM(接入亲加通信云)
  19. 摄像头码流怎么设置_【干货】一个无线网桥可以带多少个摄像头?
  20. 删除多余迅雷7插件,加快启动速度

热门文章

  1. mysql 一边查询一边删除和一边新增一边查询判断所导致的问题
  2. 【学习笔记】-提权篇(保姆级)
  3. Netkiller Linux Shell 手札之前言
  4. vue项目加入百度统计代码-统计网站浏览数据
  5. 安卓手机管理器_MiXplorer,简洁又多功能的安卓文件管理器
  6. 《现代量子力学》Sakurai 习题答案链接
  7. STM32F103笔记(一)
  8. 年度回顾 ︳2019年FedAI联邦学习达成了哪些成就?
  9. java:大数处理之超级计算器
  10. vue+elementUI 实现图片上传预览功能