环境部署

如图,windows上运行虚拟机,虚拟机中安装linux系统,主要用于android 系统编译调试环境。至于为什么要这样搞,而不直接在windows上运行gdb程序是因为运行于设备上的gdbserver要和运行于调试pc上的gdb要配套。而目前windows上gdb编译的程序往往是很老的。但是linux环境下的gdbserver和gdb程序是和android编译环境完全匹配的,并且已经预制在android源代码中了(具体位置可以在prebuilts/gdb下找到)。
环境配置
- 将gdbserver(64位系统使用gdbserver64)push到调试设备任意可执行目录,将匹配的gdb放到虚拟机系统中。
- 增加调试信息到待调试的代码中
一般需要在cflags中增加 -g -O0选项,并且不strip调试信息// Android.bp中增加,对二进制不做strip strip : { none :ture, }用带调试信息的二进制替换调试设备中的同名二进制。
- 配置网络环境
调试设备上的配置
在调试设备上启动gdbserver,设定调试端口(此处我们选择9999端口做gdb调试端口)// 比如我们使用9999端口调试1号init进程 gdbserver64 :9999 --attach 1 // 另开一个adb 窗口配置端口转发,将调试设备9999端口的tcp报文转发到本机9999端口 adb

文章描述了如何在Windows环境下利用虚拟机搭建Linux系统,以配合Android系统的编译调试。通过使用预置在Android源码中的gdbserver和gdb,避免版本不匹配问题。配置包括将gdbserver推送到设备,设置调试信息,使用adb进行端口转发,以及在Windows上配置端口代理以连接gdbserver进行远程调试。同时强调了关闭防火墙和杀毒软件网络防护的必要性。
最低0.47元/天 解锁文章
2173





