Linux应用程序可以使用gdb调试,可设置断点查看代码指定位置变量状态。
Buildroot:下载buildroot到宿主机上。其是一个可以通过配置即编译其它工具的工具,不需要管编译工具时依赖的库文件,该工具会自动下载。
arm-linux-gcc:buildroot编译后在 buildroot/output/host/bin目录下。Gdb调试的代码必须使用此交叉编译器编译。
gdbserver:在buildroot/output/host/arm-buildroot-linux-gnueabi/debug-root/usr/bin/目录下,可以使用find ./ -name "gdbserver"命令查找。使用时需要将该工具拷贝到目标机linux系统上。
arm-linux-gdb:在buildroot/output/host/bin/目录下,在宿主机上运行gdb客户端。
rootfs:在buildroot/output/image路径下,目标机需要使用该根文件系统,里面包含gdbserver以及应用程序需要的库文件。
test_app: 被调试的gdb程序,编译时需要加上-g选项。
二、buildroot配置编译
Buildrroot配置(命令 make menuconfig)
Arm架构选择
库、内核头、c++配置
配置生成gdbserver
编译(直接输入make)
三、重新制作根文件系统
将rootfs解压后,制作成根文件系统,并下载到目标板上。
四、生成调试文件
编写测试文件并生成可执行文件,编译时加-g选项,使用buildroot生成gcc。将文件拷贝到目标板上。
五、连接
确定目标板与宿主机在同一网段,并且能互相ping通,关闭主机防火墙。
在目标板上执行 ./gdbserver 192.168.47.189:1234 test_app //此处为目标板IP
主机上执行 arm-linux-gdb 进入gdb命令输入模式,再输入target remote 192.168.47.189:1234