ndk addr2line工具的使用

addr2line是Android NDK中的一个调试工具,用于定位JNI代码中的错误。当应用因JNI错误闪退时,通过log获取异常信息,结合ndk编译输出找到对应的so文件。将so文件与addr2line工具放在同一目录,通过脚本输入异常地址,可以定位到源代码的具体行数,例如在native.cpp的75行。

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

addr2line是一个十分有用的debug工具,这个工具在ndk的安装目录下就有


在ndk \toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin目录下


可以用于帮助我们分析jni 里面的bug,下面我们故意在jni代码中留一个异常,在运行到memcpy就会发生空指针异常,应用会闪退。


运行之后,通过log我们得到如下信息

09-08 14:35:53.777 F/DEBUG   ( 6893): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-08 14:35:53.853 F/DEBUG   ( 6893): Build fingerprint: 'Android/sdk_google_phone_arm64/generic_arm64:7.1.1/NYC/4252396:userdebug/test-keys'
09-08 14:35:53.853 F/DEBUG   ( 6893): Revision: '0'
09-08 14:35:53.853 F/DEBUG   ( 6893): ABI: 'arm64'
09-08 14:35:53.854 F/DEBUG   ( 6893): pid: 6867, tid: 6867, name: hxiong.neondemo  >>> com.hxiong.neondemo <<<
09-08 14:35:53.854 F/DEBUG   ( 6893): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
09-08 14:35:53.855 F/DEBUG   ( 6893):     x0   0000000000000003  x1   0000000000000000 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值