作用

arm-linux-androideabi-addr2line看工具名称就知道是将内存地址转换成行号,具体点就是根据so库抛出的Error日志的中内存地址,找到具体是在那个文件的哪一行出现的该错误。

环境

Windows7-x64 + Android Studio2.2+

环境变量配置

配置arm-linux-androideabi-addr2line环境变量,工具所在目录:ndk目录下的toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin,版本可能不一样(此步骤可以省略,当然不配置的话,每次命令行工具都得切换到该工具目录下才可运行)

实例

某次开发ndk发生如下错误,我想知道具体是在哪个源文件的哪一行发生的:

这里写图片描述

这个时候就可以使用arm-linux-androideabi-addr2line工具进行定位

命令格式:

arm-linux-androideabi-addr2line -e 需要调试的so库路径 内存地址

比如定位上图发生的这个错误:

内存地址为:00002c6f

所以在命令行工具运行:

arm-linux-androideabi-addr2line -e

F:\workspace\FFmpegDemo\app\build\intermediates\cmake\debug\obj\armeabi\libffmpeg-lib.so 00002c6f

控制台输出:

F:\workspace\FFmpegDemo\app\src\main\cpp/ffmpeg-media.c:223

【有图有真相】

这里写图片描述

我们可以看到错误的位置位于ffmpeg-media.c源文件的223行。

tips:本示例这里发生这个错误是由于JNI中使用多线程没有把需要跨线程访问的类对象定义成全局引用而造成的。

需要注意的地方

本示例是在Windows7下Android Studio中使用cmake编译打包的so库,默认输出so库的位置位于项目下

xxx\app\build\intermediates\cmake\debug\obj\armeabi目录,如果实在Linux中使用该命令需要把\转换成/

在Windows中经过实验转不转换都可以。

linux下配置ndk路径,NDK调试arm-linux-androideabi-addr2line工具的使用相关推荐

  1. jlink怎么调试linux程序_【转】ubuntu linux下openocd + gdb-insight 用Jlink调试arm程序

    openocd版本为svn 1214,insight版本为6.8 开发环境为ubuntu-8.04 包都升级到最新.2008.12.8 板子为自己设计的LPC2294的板子,BANK0 为SST39V ...

  2. linux配置路径,Linux下配置搜索路径

    截取部分于:http://james23dier.iteye.com/blog/733030 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一 ...

  3. linux下s3c2440开发板,SAMSUNG S3C2440 ARM LINUX 开发板 上手初体验 --开发环境搭建

    1,linux开发环境搭建 2,程序测试 easyOpentag驱动安装,打开连接,选择ARM-linux 1,环境搭建 我的系统版本 root@ubuntu:~# lsb_release -a No ...

  4. Linux - Linux下Java安装路径查找;配置Java环境变量

    一.查看Java的安装路径 1.已经安装好了JDK,也配置了环境变量 1.执行 java -version java -version 出现了版本号,表示安装过了JDK,配置了环境变量 2.在配置过j ...

  5. linux下如何产生core,调试core

    linux下如何产生core,调试core 摘自:http://blog.163.com/redhumor@126/blog/static/19554784201131791239753/ 在程序不寻 ...

  6. Linux下配置C语言编程环境

    1. 安装vscode及其环境 Linux与C语言紧密相关,在Linux下写C代码更是一种享受.工欲善其事,必先利其器,舒适的开发环境非常重要.Linux下有编译器gcc和调试器gdb,还有编辑器vi ...

  7. linux下配置 ITK

    在 linux 下配置 ITK 在 linux 下配置 ITK 1. 下载 CMake:http://www.cmake.org/cmake/resources/software.html 为方便安装 ...

  8. linux c 下信号量 windows下event_windows和linux下配置jdk环境

    一 在linux 下配置jdk 环境 ① 在官网下载安装包,这里如何下载安装包就不一一叙述,下载安装包完成后,使用rz命令上传至linux中.提前在linux中建立一个文件夹 mkdir /usr/l ...

  9. linux 怎么配置apache,在Linux下配置Apache Web服务

    <在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...

  10. linux 卸载ava,linux下配置ava环境变量.doc

    linux下配置ava环境变量 Linux下配置JAVA运行环境: 一:配置Linux和Windows共享文件夹 在windows系统下建立文件夹 "ltw" 点add按扭进行配置 ...

最新文章

  1. LeetCode简单题之判断国际象棋棋盘中一个格子的颜色
  2. 在电脑上实现手机app抓包
  3. 第十四天:规划质量管理,一致性成本、非一致性成本、质量七工具
  4. Linux初学:(二)Shell环境与命令基础
  5. 查重多少合格_期刊论文查重一般多少合格?
  6. log4j不打印日志
  7. mllib调参 spark_《Spark 官方文档》机器学习库(MLlib)指南
  8. webpack多页面构建优化不完全指北
  9. swift 有道 翻译文档(1 定义变量常量,数组字典)
  10. Python内置函数(28)——hash
  11. DynamipsGUI支持的全系列Cisco IOS下载
  12. SQLAlchemy session 使用问题
  13. SG90舵机驱动程序
  14. Word技巧和快捷键
  15. CAD图形的缩放——放大镜
  16. 在子页面控制父页面iframe的高度
  17. 2020 中国独立开发者生存现状调研报告
  18. 第三周 Access 课堂总结
  19. 手把手教你看懂电脑硬件测试软件CPU-Z(二)
  20. 常见的浏览器指纹包含哪些

热门文章

  1. PHP案例:实现数据库增删改查功能
  2. 【多题合集】高精度加减乘除
  3. 【codevs1316NOIP2012PJ】文化之旅,无题
  4. 如何使用be动词来确认请求_12
  5. bzoj4514 [Sdoi2016]数字配对 费用流
  6. 2017.4.16 阶乘之和 思考记录
  7. 【英语学习】【WOTD】palimpsest 释义/词源/示例
  8. 【英语学习】【WOTD】ecstatic 释义/词源/示例
  9. 用三元操作符替代if-else以降低CPU分支预测惩罚实现Unity内函数13倍提速
  10. accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)