一.下载gdb-6.7.tar.gz源代码
http://ftp.gnu.org/gnu/gdb/
二.编译 GDB
#tar zxvf gdb-6.7.tar.gz
2.1 编译GDB
#cd gdb-6.7
#./configure --target=arm-softfloat-linux-gnu --prefix=/usr/local/arm-gdb
#make
注意: 这里如果你用的是gcc-的话,编译可能会出错!你可以改成 gcc-4.1 就可以顺利编译
#make install // 生成/usr/local/arm-gdb/bin
2.2 编译GDB server
#cd ./gdb/gdbserver
#export PATH=$PATH:/usr/local/arm-gdb/bin
#./configure --target=arm-softfloat-linux-gnu --host=arm-softfloat-linux-gnu
#vi config.h
//#define HAVE_SYS_REG_H //注释此句
#make CC=arm-softfloat-linux-gnu-gcc //生成gdbserver是GDB客户端程序,在板子上运行。
三.实战调试
1.创建用来调试的gdbtest.c
# arm-softfloat-linux-gnu-gcc -g gdbtest.c -o gdbtest // 交叉编译
2.拷贝gdbtest和gdbserver到/source/rootfs
3.运行调试
Board ip = 192.168.1.180
Host pc ip = 92.168.1.45
board:
#./gdbserver 192.168.1.45:1234 gdbtest // 目标板上运行gdbtest 监听端口1234
host pc:
#cd /usr/local/arm-gdb/bin/
#copy gdbtest /usr/local/arm-gdb/bin/ // 将前面编译的文件gdbtest拷贝到此目录
#./arm-softfloat-linux-gnu-gdb gdbtest
(gdb)target remote 192.168.1.180:1234 // 连接到开发板 成功后就可以进行调试
(gdb)list or l
(gdb)break func
(gdb)break 22
(gdb)info br
(gdb)continue or c // 这里不能用 run
(gdb)next or n
(gdb)print or p result
(gdb) finish // 跳出func函数
(gdb) next
(gdb) quit
建立连接后进行gdb远程调试和gdb本地调试方法相同
如果在目标板运行gdbserver 是发现缺少库文件时,可以从主机的交叉编译工具目录下crosstools/gcc-3.4.5-glibc2.3.6/arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/lib/ 下对应的库文件拷贝到目标机文件系统的 /lib 下就可以了