- 所有调试借用的是 ndk里面自带的功能,gdbserver 和 gdb
- 首先我们的编译链里面会有个 程序叫 gdbserver
使用gdbserver可以对目标设备上的程序进行远程调试
所以我们需要将这个程序推到 手机里面
- 我运行的手机的目录是 /data/local/tmp
使用adb将此程序推到手机中, adb push gdbserver /data/local/tmp/
顺便赋权限 adb shell "chmod 777 /data/local/tmp/gdbserver "
- 编译Makefile中,Application.mk 中增加 APP_OPTIM := debug 将编译的程序设置成debug的,编译选项记得加-g, 不然没法调试
- 将编译好的可执行程序拷贝到手机中去,我的可执行程序名称为embeed
adb push embeed /data/local/tmp/
adb shell "chmod 777 /data/local/tmp/embeed"
- 创建两个窗口,第一个窗口,
输入命令:adb shell 进入手机
输入命令:cd /data/local/tmp 进入运行目录
启动 gdbserver, 并设定一个端口号,来和调试窗口绑定,并等待客户端连接,输入命令:./gdbserver :1238 embeed
- 运行命令:adb forward tcp:1238 tcp:1238 此时开始等待中
(ps: 这个端口号,你可以自己来任意设
C层代码-远程调试android手机-gdbserver
最新推荐文章于 2024-07-21 11:50:32 发布
本文详细介绍了如何使用gdbserver进行远程调试Android手机上的C层代码。首先,通过adb将gdbserver推送到手机并赋予执行权限。接着,在Makefile中设置APP_OPTIM为debug,确保编译选项包含-g。然后,将编译好的可执行程序复制到手机,启动gdbserver并指定端口号,通过adb forward建立连接。在两个不同的终端窗口中,一个运行gdbserver等待调试,另一个使用gdb连接并加载可执行文件开始调试。通过这种方法,可以成功地对Android设备上的C程序进行远程调试。
摘要由CSDN通过智能技术生成