NDK调试arm-linux-androideabi-addr2

作者: 鞔倪 | 来源:发表于2017-08-18 16:13 被阅读115次

作用

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中经过实验转不转换都可以。

相关文章

  • NDK调试arm-linux-androideabi-addr2

    作用 arm-linux-androideabi-addr2line看工具名称就知道是将内存地址转换成行号,具体点...

  • android ndk 调试项目

    调试项目 在构建应用后,您可能需要对其进行调试。本节介绍 NDK 的调试工具。 首先介绍如何使用 ndk-gdb ...

  • Android开发周刊 第二期

    文章 使用QtCreator加速Android NDK开发调试 为APP开发JNI接口以及NDK动态库的时候,需要...

  • Android NDK 学习笔记

    android NDK 简介 Android NDK是一个复杂的集合,包括: API 、交叉编译器、连接器 、调试...

  • NDK开发(四)--NDK调试

    崩溃日志分析 在ndk崩溃的时候,如果是习惯JAVA 开发的同学,可能会毫无头绪,因为其崩溃信息并不像JAVA那样...

  • Android studio 3.0 调试NDK代码

    文章主要描述在Android Studio中依赖NDK时如何进行JNI的单步调试。如果是单个NDK工程的话,可以直...

  • Android NDK编译和导入FFmpeg源码

    由于较新版本NDK编译FFmpeg源码资料较少,网上的教程大多都是NDK<=17的,自己也是经过漫长的调试才编译成...

  • NDK Moudle下的调试、C、C++代码补全提示

    NDK Moudle下的调试 参考https://www.jianshu.com/p/8191a654dcb8 具...

  • 动态注册和线程

    Jni_Onloadas开发ndk安装的工具sdktool: CMake:编译工具 LLDB:调试 动态注册和静态...

  • Android Studio调试NDK

    记得之前做饮料售卖机的支付模块笔者用的jni下串口通信,那个时候没有用调试(主要不知道怎么调试底层),只得打出日志...

网友评论

    本文标题:NDK调试arm-linux-androideabi-addr2

    本文链接:https://www.haomeiwen.com/subject/jiuarxtx.html