利用 GDB 进行远程调试
在进行嵌入式系统开发中,受到嵌入式系统资源的限制,调试环境和通用桌面系统的调试环境有差别,
引入了远程调试技术。这时,调试器运行于通过桌面系统,被调试的程序则运行于基于特定硬件平台的嵌
入式系统(目标系统)。因此,要求调试器和被调试程序之间进行通信,调试器还需要能够处理某些特定
硬件平台的信息。
插桩(stub)方案是在目标系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。而通过引
入 GDBSERVER 这个远程服务程序,正好可以充当目标机上的 stub,本地主机上运行我们通常使用的调
试器 GDB,当时在指定“调试目标”的时候我们不再用 le 命令指定调试的可执行文件,而是用 target
remote 命令来指定需要调试的目标机,由它发起对目标机的连接。
远程调试示意图:
GDB 远程调试环境原理图:
(用 dia 做的图,但是怎么边线没有导出来?)
一个远程调试实例(由于我身边没有开发板,只能把主机当目标机来做实验拉。):这里通过搭建一个
主机 PC 端和目标机端的 gdbserver 来做实验。
1、编译宿主机上的 GDB 调试器
如果目标机是 arm 内核的话,就得用 arm-linux-gcc 来编译 gdb 拉,我这里直接就可以用系统已经安
装的 gdb。