Chinaunix首页 | 论坛 | 博客
  • 博客访问: 740765
  • 博文数量: 98
  • 博客积分: 4934
  • 博客等级: 上校
  • 技术积分: 1151
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-12 19:55
文章分类

全部博文(98)

文章存档

2014年(1)

2013年(2)

2012年(4)

2011年(25)

2010年(33)

2009年(33)

分类: 嵌入式

2010-03-13 18:43:18

嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。调试时,应用程序在嵌入式目标系统上运行,而gdb调试在Host端。

一、编译安装gdb+gdbserver

首先下载gdb源码,我下载的是gdb-6.6.tar.gz。

$tar xvzf gdb-6.6.tar.gz

$mkdir mygdb

$cd mygdb

必须要在你想要安装的目录下执行下边的命令。

$../gdb-6.6/configure --target=arm-linux   \ --prefix=/home/a/mygdb

参数说明:target是你的目标板,我的是arm-linux,prefix是你要安装的目标文件夹。

$make

$make install

然后建立gdbserver。

$mkdir mygdbserver

$cd mygdbserver

$chmod +x ../gdb-6.6/gdb/gdbserver/configure

$CC=arm-linux-gcc ../gdb-6.6/gdb/gdbserver/configure \

--host=arm-linux --prefix=/home/a/mygdbserver

$make

$make install

$arm-linux-strip gdbserver

去除调试信息。不去好像不行,我的就不行,去了就ok了。

复制到你的开发板上就可以了。

二、调试步骤

1、交叉编译,带参数-g加入调试信息。

假设要调试的程序为test.c。

#arm-linux-gcc -g test.c -o test

2、在Target Board开启gdbserver

#gdbserver :2345 test

gdbserver开始监听2345端口(你也可以设其他的值),然后启动test,你会看到“Process test created:pid=88”

3、回到Host端

#arm-linux-gdb test

最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”...

说明此gdb在X86的Host上运行,但是调试目标是ARM代码。

(gdb)target remote :2345

注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。

建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用超级终端查看。

4、退出GDB:

    (GDB)Quit

这时就可以调试目标板上的程序了

阅读(8289) | 评论(0) | 转发(2) |
0

上一篇:11个笑话

下一篇:关于smartcard 通信协议

给主人留下些什么吧!~~