Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201586
  • 博文数量: 67
  • 博客积分: 2720
  • 博客等级: 少校
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-05 13:53
文章分类
文章存档

2011年(1)

2010年(43)

2009年(23)

我的朋友

分类: 嵌入式

2010-06-18 21:59:27

因为移植x264时出了点问题,想调试一下找一下原因,于是就搭建了gdb+gdbserver调试环境,不过后来问题解决了因此并没有用到它。以下的过程参考的网友的搭建经验:
 
嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。调试时,应用程序在嵌入式目标系统上运行,而gdb调试在Host端。
 一、编译安装gdb+gdbserver
 首先下载gdb源码,我下载的是gdb-7.1.tar.gz。
$tar xvzf gdb-6.6.tar.gz
$mkdir mygdb
$cd mygdb
必须要在你想要安装的目录下执行下边的命令。
$../gdb-7.1/configure --target=arm-linux   \ --prefix=/usr/local/gdb
参数说明:target是你的目标板,我的是arm-linux,prefix是你要安装的目标文件夹。
$make
$make install
然后建立gdbserver。
$CC=arm-linux-gcc ./configure \
--host=arm-linux  --prefix=/usr/local/gdbserver
$make
$make install
$arm-linux-strip gdbserver

复制到你的开发板上就可以了。
 二、调试步骤
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端,用超级终端查看。
阅读(777) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~