arm-linux-androideabi-addr2line

原创 2016年05月30日 09:49:24
1.将ndk中的arm-linux-androideabi-addr2line可执行文件的路径加入配置文件~/.bashrc中,例如:

export PATH=$PATH:~/dlna/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin


2.使配置生效:source ~/.bashrc


3.使用工具。例如:arm-linux-androideabi-addr2line -C -f -e  ~/workspace/DLNA/libs/armeabi/libctrlpt.so 0003deb4

其中,0003deb4为堆栈信息中pc的值。

 

 
android应用崩溃的调试方法

有两种方法可以分析 crash 的堆栈信息

1 google提供了一个python脚本,可以从

http://code.google.com/p/android-ndk-stacktrace-analyzer/
下载这个python脚本,然后使用 adb logcat -d > logfile 导出 crash 的log,
使用 arm-eabi-objdump 位于build/prebuilt/linux-x86/arm-eabi-4.2.1/bin下面
把so或exe转换成汇编代码,如:arm-eabi-objdump -S mylib.so > mylib.asm,
使用脚本

python parse_stack.py <asm-file> <logcat-file>

2 直接使用NDK下面的arm-linux-androideabi-addr2line

(D:\android-ndk-r8\toolchains\arm-linux-
androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-addr2line.exe)

例如:arm-linux-androideabi-addr2line -C -f -e libxxx.so 0x#####(address)

 

android调试工具addr2line使用补充

使用addr2line追踪自有动态库(so文件)的bug, 补充:
解决出现 ??:0 , 没法展示源代码行数的问题

在Android.mk 文件中:
Java代码

    LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS -Wl,-Map=test.map -g  



补充2个编译参数  -Wl,-Map=test.map -g .
增加gcc警告和调试标志

arm-linux-androideabi-addr2line -C -f -e /项目目录/obj/local/armeabi/libfaa_jni.so 0024362e

tip: 1,注意调试文件的位置在obj目录下,并非libs目录下生成的so文件
       2,0024362e 为出错的机制位置

还有:
在jni/目录下增加Application.mk 文件, 修改为debug 模式,进行调试 APP_OPTIM := debug
具体application.mk 文件的配置见: http://blog.csdn.net/weidawei0609/article/details/6561280


arm-eabi-addr2line 工具 查看 函数地址 - 子衡 - 子衡的博客
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

arm-eabi-addr2line android应用崩溃的调试方法

http://changxianli6121.blog.163.com/blog/static/56392130201312652555385/ 1.将ndk中的arm-linux-...

使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈

使用arm-eabi-addr2line工具跟踪Android调用堆栈 作者:liangshengyang 转自:http://www.linuxidc.com/Linux/2011-01/318...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

使用arm-eabi-addr2line工具跟踪Android调用堆栈

使用arm-eabi-addr2line工具跟踪Android调用堆栈 作者:liangshengyang 转自:http://www.linuxidc.com/Linux/2011-01/318...

使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈

使用arm-eabi-addr2line工具跟踪Android调用堆栈 作者:liangshengyang 转自:http://www.linuxidc.com/Linux/2011-01/318...

Android或Linux调试addr2line工具锁定命令的使用

查看vmlinux内核的起始地址0对应的源码位置 luther@gliethttp:~/kernel$ arm-none-eabi-addr2line -f -e arch/arm/boot/c...

linux debug : addr2line追踪出错地址

linux debug : addr2line追踪出错地址

linux调试----addr2line使用

我们在linux下开发程序时,经常遇到Segmentation fault的错误信息,如果代码比较少还可以去一行行排除,但是代码量比较大的时候,往往是一件头疼的事情。Segmentation faul...

重新编译arm-linux-androideabi-gdb和gdbserver

一、引言          Android应用程序在运行的时候,不管是dex还是native的so,都要加载到内存里面,所以直接把与之对应的内存dump出来分析是一个不错的主意,ndk给我们提供了可...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)