调试工具GDB构建

调试工具GDB构建

对于嵌入式GDB而已,分为两种,这两种方法的的区分是鉴于使用和编译后的工具而言。

  1. 第一种是开发板上使用的GDB,就像PC机上Linux系统使用GDB一样。
  2. 第二种是开发板上使用单板的GDB Client,PC机上使用PC版本GDB Server。两者通过网络来交互信息实现调试。

我们这里介绍第一种,主要介绍第一种gdb的构建方法:

  1. 下载gdb源码,路径为:http://ftp.gnu.org/gnu/gdb/

  2. 添加交叉编译工具链到环境变量,即交叉编译链所在路径加到环境变量中,例如

    export PATH=/opt/freescale/usr/local/gcc-4.1.78-eglibc-2.5.78-dp-1/powerpc-linux-gnuspe/bin:/opt/freescale/usr/local/gcc-4.1.78-eglibc-2.5.78-dp-1/powerpc-linux-gnuspe/powerpc-linux-gnuspe/bin:$PATH
    
  3. 进入gdb目录执行

    ./configure--host=powerpc-linux-gnuspe --enable-shared --prefix=/home/gdb CC=powerpc-linux-gnuspe-gcc
    

    其中:

    • –enable-shared 动态编译
    • –host= 用powerpc-linux-gnuspe-gcc编译,注意该选项不是任意自己定,而是根据交叉编译链的名字取其前缀,如笔者MPC8548交叉编译链名称为powerpc-linux-gnuspe-gcc则host定义为powerpc-linux-gnuspe
    • –prefix= 安装目录
    • cc 表示gcc文件名
  4. configure完成以后会生成Makefile,然后执行make完成编译,然后执行make install后会在prefix指定的目录生成gdb

  5. 如果编译报如下错误

    make[1]: *** [configure-gdb] Error 1
    
    configure: error: no termcap library foundmake[1]: ***[configure-gdb] Error 1
    

    这是应为交叉工具链没有包含termcap这个lib库,而编译gdb需要这个库的接口,因此先用工具链编译这个库,放入工具链中,过程如下:

    • 下载termcap源代码:ftp://ftp.gnu.org/gnu/termcap
    • 解压termcap包,进入termcap包以后使用/configure命令配置生成Makefile:
    • ./configure --target= powerpc-linux-gnuspe --prefix=/home/termcap
    • 手动修改Makefile:CC=powerpc-linux-gnuspe-gcc
    • 执行make,然后makeinstall,在/home/termcap目录就可以看到交叉编译生成的libtermcap.a
    • 到交叉编译器文件夹下搜索包含libc.a的目录:find –name libc.a,搜索到之后将libtermcap.a拷贝到其中,如果搜索到多个不确定哪个目录那就都拷贝一份。
    • 重新到gdb目录执行make,然后makeinstall
  6. /home/gdb/bin下生成的gdb是包含了gcc编译调试信息的gdb,文件比较大,执行下面命令,压缩去除多余调试信息:

    powerpc-linux-gnuspe-stripgdb -o gdb-stripped
    

    检查一下编出来的文件信息,可以看到

    # file gdb-stripped
    
    gdb-stripped: ELF 32-bit MSB executable, PowerPC or cisco 4500,version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0,stripped
    
  7. 至此gdb交叉编译完毕,将gdb-stripped拷贝到单板即可运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值