arm-linux-gdb安装日记

来源:互联网 发布:北京java平均工资 编辑:程序博客网 时间:2024/05/16 00:45

我写的嵌入式程序最近升级出了点问题,需要使用gdb来进行调试

上一次调试已经是一年半以前了,在开发平台中找了半天发现已经没有了,为什么没有了,我还真记不起来怎么丢的啊?

1. 先下载gdb源码,可是gdb源码在哪个网站也记不得了,那就google一下吧,嗯,很容易的

http://ftp.gnu.org/gnu/gdb/

为了兼容性考虑,就不要和开发环境差太多吧,本机的原有的gdb pc版本

2. gdb --version

GNU gdb Fedora (6.8-1.fc9)

Copyright (C) 2008 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permittedby law. Type "show copying"

and "show warranty" for details.

This GDB was configured as "i386-redhat-linux-gnu".

可以看到版本是6.8

3. 下载一个gdb-6.8a.tar.gz,好家伙,随便一个工具现在都是20M了,最新版的7.5已经快30M了。

做习惯了嵌入式系统的抠门劲,都有些不适应这种数字啊。真是太奢侈,太浪费了。

解压缩

tar zxvf gdb-6.8a.tar.gz

配置一下

cd gdb-6.8

#./configure --target=arm-linux

make

就看见刷刷刷无数字符翻滚,时间不算太长,编好了

先装上吧

make install

因为没有使用--prefix配置,所以默认装在了/usr/local/bin

4. 接下来编译gdbserver,

cd gdbserver

#./configure --target=arm-linux --host=arm-linux

CC = /usr/local/arm/4.3.1/bin/arm-linux-gcc

make

编译中提示hostio.c PATH_MAX宏找不到,老实说我也不知道这个宏原本应该在哪里,看名字意思应该是最大路径长度,随便写个1024差不多够用了吧(上google搜一下,有人建议用4095

这下都编译通过了

5.接下来编译我自己要调试的代码,我的程序较LATest,编译的时候增加一个-g选项就可以了。

把编译好的LATestarm-linux-gdbserver都拷贝到开发板的对应目录下

./arm-linux-gdbserver 192.168.1.252:1234 LATest

192.168.1.252是我的PC机的IP地址。

6.在pc机端启动gdb,我的开发板地址192.168.1.233 输入连接命令

[root@localhost ~]# arm-linux-gdb LATest

(gdb) target remote 192.168.1.233:1234

Remote debugging using 192.168.1.233:1234

[New Thread 933]

0x40000860 in ?? ()

(gdb)

7.输入命令b main,把断点停在main函数入口

终于可以开始调试了