GDB调试ARM

一.下载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 下就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值