NDK调试arm-linux-androideabi-addr2line工具的使用

本文介绍了如何使用NDK中的arm-linux-androideabi-addr2line工具进行调试,该工具能将内存地址转换为源代码的行号,帮助定位Android应用中SO库的错误。通过配置环境变量并运行实例,展示了当工具指出错误位于ffmpeg-media.c的223行时,可能是由于多线程中未正确设置全局引用导致的问题。

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

NDK调试arm-linux-androideabi-addr2line工具的使用

作用

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
<
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值