更多内容:XiaoJ的知识星球
目录
- 1.准备工作
- 1)安装Android NDK:
- 2)连接Android手机
- 3)编译程序
- 2.启动gdbserver
- 1)**推送gdbserver及可执行文件**:
- **2)启动gdbserver**:
- 3)设置端口转发
- 3.GDB连接gdbserver
- 4.调试
Linux服务器上,使用Android手机进行GDB调试C/C++程序,步骤如下:
1.准备工作
1)安装Android NDK:
Linux服务器上安装Android NDK,因为需要以下工具:
-
1.gdb 和 gdbserver。
-
2.clang交叉编译工具链。安装工具,需要包含:
请自行安装(建议使用android-ndk-r23c,后面版本无gdbserver)
-
下载解压NDK:https://developer.android.google.cn/ndk/downloads?hl=zh-cn
-
指定版本NDK: https://github.com/android/ndk/wiki/Unsupported-Downloads
2)连接Android手机
(1)启用开发者选项和USB调试:
-
在手机上,进入“设置”>“关于手机”,找到“版本号”,连续点击7次以启用开发者选项。
-
然后返回“设置”菜单,进入“开发者选项”,启用USB调试。
(2)连接设备:USB线将Android手机连接到Linux服务器。
3)编译程序
使用NDK工具链编译你的代码,并确保加上-g
选项以生成调试信息。例如:
ndk-build APP_ABI=armeabi-v7a NDK_DEBUG=1
2.启动gdbserver
1)推送gdbserver及可执行文件:
将NDK提供的gdbserver
推送到Android手机上:
adb push <NDK-path>/prebuilt/android-arm/gdbserver/gdbserver /data/local/tmp/
adb push your_app /data/local/tmp/
2)启动gdbserver:
在Android手机上启动gdbserver
,让它监听一个端口,并附加到你的应用程序:
adb shell
su
cd /data/local/tmp
./gdbserver :1234 ./your_app
3)设置端口转发
将Linux服务器上的端口转发到Android手机上的端口:
adb forward tcp:1234 tcp:1234
3.GDB连接gdbserver
# 启动GDB
<NDK-path>/prebuilt/linux-x86_64/bin/gdb# 连接到gdbserver
(gdb) set solib-search-path /path/to/your/libs
(gdb) file /path/to/your_app
(gdb) target remote localhost:1234
4.调试
在GDB中,你可以设置断点、单步执行、查看变量等,进行调试:
(gdb) break main
(gdb) continue
(gdb) next
(gdb) print variable_name
结束调试
# 结束gdbserver监听:
Ctrl + C#退出GDB
(gdb) quit#清理端口转发
adb forward --remove tcp:1234
.
声明:资源可能存在第三方来源,若有侵权请联系删除!