ubuntu10.10使用GDB构建ARMlinux在线调试环境

2019-07-13 04:48发布

        嵌入式Linux的GDB在线调试环境由Host端(PC机)和Target端(ARM实验板)两部分组成,Host端使用arm-linux-gdb调试工具,而Target端需要运行gdbserver,两者之间可通过串口或网口连接,把ARM应用程序在Target端的执行情况返回Host。调试跟踪命令从Host端中的arm-Linux-gdb中发出。         首先介绍一下我的使用环境:操作系统为ubuntu10.10,编译器为gcc 4.5.1,交叉编译器为arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2011.03-41) 4.5.2,处理器为Arm9内核。本文内容都是在上述条件下进行配置编译,环境不同时,请做出相应的配置修改。ubuntu的用户为root用户,如果使用非root用户,下述命令前请增加sudo。 1. 下载gdb源码包
        下载地址:http://ftp.gnu.org/gnu/gdb
        请大家根据实际情况下载。不一定需要下载最新的。 此处以gdb-7.6.tar.bz2为例。 2. 解压文件 tar -vxzf gdb-7.9.tar.gz 3. 安装arm-linux-gdb
        进入到gdb源码目录
cd gdb-7.6 ./configure --target=arm-none-linux-gnueabi --prefix=/home/sunny/cross/gdb_arm make make install        注:/home/sunny/cross/gdb_arm为arm-linux-gdb安装目录
       安装时出错,说缺少expat.h,下载安装expat包。此处不多说了,基本都类似。
       修改环境变量
gedit /etc/environment        直接把/home/sunny/cross/gdb_arm/bin加入环境变量中。
       PC端的gdb就安装完成了,接下来安装开发板端的gdbserver。 4. 安装gdbserver
       进入gdbserver目录
cd gdb/gdbserver ./configure --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --prefix=/home/sunny/cross/gdb_arm/gdbserver make CC=arm-none-linux-gnueabi-gcc make install       如果没有错误,在/home/sunny/cross/gdb_arm/gdbserver/bin目录下就会出现gdbserver可执行文件,此处我的是arm-none-linux-gnueabi-gdbserver。
5.调试
        调试方式有多种方式,①PC机共享网络文件夹,target挂载共享文件夹后,直接调试;②把调试的程序和gdbserver复制到target,然后运行调试。
        此处我采用第二种方式。
       首先远程终端target运行arm-none-linux-gnueabi-gdbserver 172.72.101.226:66666 test
       PC机在要调试的程序的目录下运行arm-none-linux-gnueabi-gdb test
       然后输入:target remote 172.72.101.221:66666
       然后就可以想在PC上调试一样调试了。