Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30996941
  • 博文数量: 230
  • 博客积分: 2868
  • 博客等级: 少校
  • 技术积分: 2223
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 21:48
个人简介

Live & Learn

文章分类

全部博文(230)

文章存档

2022年(2)

2019年(5)

2018年(15)

2017年(42)

2016年(24)

2015年(13)

2014年(1)

2012年(5)

2011年(58)

2010年(56)

2009年(9)

我的朋友

分类: LINUX

2010-04-30 09:56:30

建立ARM+Linux调试环境

 

Gdb+gdbserver+insight环 境的搭建

1.   下载gdb源代码   

 

2.   配置安装gdb+gdbser

Tar jxvf gdb-6.6.tar.bz2

Cd X/gdb

./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v

--prefix用于指定安装路径

--target=arm-linux用于制定目标环境的编译

编译,make

安装,sudo make install

之后在X/bin夹下生成arm-linx-gdb可执行文件.

Cd gdbserver

配置文件:

#./configure --target=arm-linux --host=arm-linux
--target=arm-linux表示目标平台,--host表示主机端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在主机端安装运行)

#make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
(
这一步要指定你自己的arm-linux-gcc的绝对位置,相对的通常不行,提示make: arm-linux-gcc: Command not found,如果用的相对路径,即直接赋值arm-linux-gcc,可采取make时传递参数,也可以直接修改gdbserver目录下的Makefile文件中的环境变量CC)

之后 在gdbserver目录下生成gdbserver可执行文件.

可将它通过nfs拷贝到目标板上运行.

如:mount –t nfs host:/friendly-arm/root /mnt –o ro,nolock

这里如果没有加上选项–o ro,nolock无法正常mount.

@在目标板上运行

     (1)将要调试的文件和gdbserver放在同一个文件夹下

           ./gdbserver host:port 待调试文件

2)在主机段执行arm-linux-gdb “待调试文件

   gdbtarget remote client:port    连接客户机

  注意:(1)在目标机上通过gdbserver调试的在gdbserver运行的时候已经运行了,并且其中 不包含调试的符号信息,所以要想加入符号信息只能通过host运行的gdb加入含有调试信息的可执行文件。

           (2)刚开始的时候将./gdbserver下载到目标机后不能运行,其主要原因就是所制作的根文件缺少libthread_db.so.1库文件。但是发现lib中并没有该文件,只有一个链接文件,通过file查看:

         [root@localhost lib]# file libthread_db.so.1

         Libthread_db.so.1: symbolic link to libthread_db-1.0.so

         发现该链接文件链接到libthread_db-1.0.so该库文件,于是将文件libthread_db-1.0.so拷贝到根文件系统,然后改名为Libthread_db.so.1,之后gdbserver能正常运行了.

 

3.      安装gdb图 形调试界面insight gtk软件包)

下载地址:      版本为:insight-6.6.tar.bz2

Tar –jxvf insight-6.6.tar.bz2

Cd insight-6.6

配置文件:

 ./configure --target=arm-linux --enable-sim --prefix=/usr/local/arm/insight

配置选项的解释同上.

 编译,make

 安装,sudo make install

注意:在第一次编译的时候老是出现问题,最后发现自己在装RedHat9.0的时候为了节省磁盘没有安装gtk软件包,所以编译的时候会出错。但是 在装了之后,再次编译insight-6.8.tar.bz2版本,出现了X参数未 初始化的错误。然后重新换成insight-6.6.tar.bz2版本,编译成功,安装,OK

关于gdb远程调试参见:

 

剩下需要,就是busyboxminicom下如何终止程序的运行。

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