如何使用arm-linux-androideabi-addr2line 【转http://blog.youkuaiyun.com/hun_sunny/article/details/8350151】...

本文详细介绍了如何使用arm-linux-androdeabi-addr2line工具来分析Android应用崩溃时的堆栈信息,并提供了两种方法:一种是通过下载并运行Python脚本来解析日志文件,另一种是直接使用NDK中的工具进行分析。此外,还补充了在Android.mk文件中增加编译参数以解决显示源代码行数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用arm-linux-androideabi-addr2line  

如何使用arm-linux-androideabi-addr2line

转载地址:http://blog.youkuaiyun.com/yanzheng1113/article/details/8148091

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代码
  1. 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.youkuaiyun.com/weidawei0609/article/details/6561280

转载于:https://www.cnblogs.com/songtzu/archive/2013/04/01/2993965.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值