由于开发板不自带编译器和GDB调试器,所以需要使用gdbserver当作媒介,来建立起开发板与linux主机之间的桥梁,进而实现在linux上远程调试开发板上的程序。这里需要注意,你在主机上远程调试开发板上的程序必须是同一个文件夹目录下的同一个ARM可执行程序(可以ntfs挂载实现)
步骤1:需要编译生成gdbserver
下载gdb-9.1并解压到linux服务器,我用的是这个版本,你们也可以下载其他版本。
下载网址https://ftp.gnu.org/gnu/gdb/https://ftp.gnu.org/gnu/gdb/
步骤2:配置gdbserver的编译选项,指定编译器(arm-linux-gnueabihf)
进入到gdbserver文件夹,执行./configure
cd gdb-9.1/gdb/gdbserver
./configure --host=arm-linux-gnueabihf
步骤3:在gdbserver目录开始编译gdbserver
make -j16
最终会在当前gdbserver生成一个gdbserver文件,这就是编译出来的,可以在arm开发板执行的程序
步骤4:将之前编译好的gdbserver文件复制到你开发板运行程序的当前同级目录;并在开发板执行
gdbserver 192.168.101.200:1234 ./Demo.out
其中ip是你linux主机的ip,端口需和主机上调试使用的端口保持一致,可随便设置!
步骤5:在linux主机上执行( 例如这里linux的编译器是arm-linux-gnueabihf-g++,调试器是arm-linux-gnueabihf-gdb,你already配置好了环境变量)
arm-linux-gnueabihf-gdb ./Demo.out
步骤6:然后在主机的gdb界面执行,开始建立linux主机与开发板的gdb服务桥梁
target remote 192.168.101.186:1234
该ip是开发板的ip
这里的ip是主机ip地址,需要将开发板ip和主机ip置于同一个局域网内,端口与开发板运行gdbserver设置的端口保持一致即可。
然后你就可以在linux主机上进行一系列操作了