建立ARM+Linux应用程序调试环境

来源:互联网 发布:windows管理员权限获取 编辑:程序博客网 时间:2024/05/18 04:03

 

建立ARM+Linux应用程序调试环境

 

Gdb+gdbserver+insight环境的搭建

1.    下载gdb源代码    http://ftp.gnu.org/gnu/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放在同一个文件夹下

            vivi> ./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 软件包)

下载地址:http://sourceware.org/insight/       版本为: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版本,编译成功,安装.

关于gdb远程调试参见:http://codex.wordpress.org.cn/GDB_Manual_17_1

 

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

原创粉丝点击