- 所有调试借用的是 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
![](https://img-home.csdnimg.cn/images/20240711042549.png)