Chinaunix首页 | 论坛 | 博客
  • 博客访问: 449961
  • 博文数量: 73
  • 博客积分: 3593
  • 博客等级: 中校
  • 技术积分: 912
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 11:32
文章分类

全部博文(73)

文章存档

2013年(2)

2012年(20)

2011年(25)

2010年(12)

2009年(14)

分类: LINUX

2009-11-22 01:57:45

在micro2440上测试通过,作此文笔记。

大概步骤是:下载gdb源码编译,将gdbserver拷贝到arm板上运行,启动主机上的gdb开始调试。

1、下载gdb源码
一个可用地址是:。我下载的是

2、解压gdb源码
比如我的源码压缩包路径是/home/nzq/arm_rd/gdb-6.6.tar.gz
> cd /home/nzq/arm_rd/
> tar vxfz gdb-6.6.tar.gz -C ../src/ /* 解压到../scr目录 */

3、创建gdb和gdbserver的编译目录
> mkdir /home/nzq/build/mygdb      /*在这个两个目录下配置和编译*/
> mkdir /home/nzq/build/mygdbserver

4、配置和编译gdb
> cd /home/nzq/build/mygdb
> ../../src/gdb-6.6/configure --target=arm-linux --prefix=/home/nzq/build/mygdb
配置的最后一行显示:"creating Makefile"配置完毕
说明:"../../src/gdb-6.6/"是gdb源码所在文件夹;target是目标板,micro2440是arm-linux prefix是目标文件的安装目录。因为我已经安装过arm交叉工具/usr/local/arm/4.3.2/bin/下已经有一个arm-linux-gdb,所以我将安装目录设在当前目录(make install时用到)。

> make
make完成后在当前目录下生成了gdb/gdb等等
> make install
install完成后在当前目录bin文件夹下生成了:
arm-linux-gdb  arm-linux-gdbtui  arm-linux-run

4、配置和编译gdbserver
> cd /home/nzq/build/mygdbserver
> chmod +x ../../src/gdb-6.6/gdb/gdbserver/configure
> CC=arm-linux-gcc ../../src/gdb-6.6/gdb/gdbserver/configure \
  --host=arm-linux --prefix=/home/nzq/build/mygdbserver
> make
make完成后在当前目录下生成gdbsever等文件
> make install
install完成后在当前目录bin文件夹下生成了:gdbsever文件。我的理解应该是将前面的gdbserver拷贝到安装目录下的bin文件下而已,正好前年定义的安装目录就是当前目录。

5、编译测试程序
编辑hello.c如下:
/***************************************/
#include
#include

int main(void){

        printf("Hello,2440.\n");
        printf("Hello,gdbserver.\n");

        return 0;
}
/***************************************/
> arm-linux-gcc -g hello.c -o hello /*使用-g选项编译,调试的时候可以看到源代码*/

5、将gdbserver和测试程序hello拷贝到arm板上运行
我使用nfs做为arm板的根文件系统,因此将gdbserver拷贝到nfs的目录下就行了。关于nfs需要在/etc/exports文件中设置,不在次详细说明。
先用ifconfig看一下arm板的ip地址是多少,micro2440默认设置是192.168.1.230。
% gdbserver 192.168.1.102:2345 hello (%:用"%"表示arm板终端显示)
gdbserver开始侦听2345端口,然后启动hello
这时候arm板终端打印:
Process hello created; pid = 575
Listening on port 2345

6、回到host终端
> ./arm-linux-gdb hello
最后一行显示:
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-linux"...
说明运行在x86的host上,但调试目标是arm代码。
> (gdb) target remote 192.168.1.230:2345
这时候arm板终端显示:
Remote debugging from host 192.168.1.102
说明和主机已经连接上了。
剩下的和x86上的gdb调试一样了。

另外arm-linux-gdbtui带简单的文本界面显示,看起来可能会直观一些。





阅读(1321) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~