android 内核 gdb adb,使用adb+gdb调试android native代码

本文详细介绍了如何使用adb和gdb/gdbserver组合来调试Android设备上的本地(native)代码。首先讲解了调试原理,然后阐述了adb的连接逻辑和gdb的功能。接着,逐步指导了准备工作,包括编译带有符号表信息的目标文件、修改AndroidManifest.xml、拷贝gdbserver到设备。最后,详述了配置步骤,包括adb端口转发、启动gdbserver、使用gdb连接并设置库搜索路径,以及开始调试。
摘要由CSDN通过智能技术生成

调试原理:调试时在TARGET端(手机或模拟器或开发板等目标平台)运行gdbserver,并将要调试的进程attach到gdbserver上;在HOST(例如PC机)端运行gdb,通过adb在TARGET和HOST之间做端口映射进行通讯。

a661729ec692adb694983c72c2ef583b.png

adb+gdb/gdbserver配合来调试远程native代码

Part1:主要工具:adb  gdb/gdbserver

adb(android debug bridge)是一个多功能的安卓命令行工具,用户可以用来连接模拟器和安卓设备;它是client-server架构,主要包括:client(PC端),server(PC端),daemon进程(模拟器或安卓设备端)三部分。

adb连接逻辑和基本概念,打开

gdb(GNU debugger)是常用于GNU OS的调试工具。gdb更多介绍请移步wiki

Part2:准备工作

1,编译带有符号表信息的目标文件(例如动态库)

要使用gdb来调试,首先要编译和加载带有符号表信息的目标文件;需要加上几个编译选项:-O0 -ggdb3  -fno-inline -g,尽量多的带有信息供调试

特别说明:

a,如果编译生成的文件跟项目中加载的文件不同名,一定要改名或拷贝成后者的文件名

b,andr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值