gdb源码下载及编译

(1)        编译平台:

ubuntu 16.04LTS

(2)        源码路径:

Index of /gnu/gdb

我这里下载的版本是gdb-8.2.tar.gz

(3)        解压后,进入gdb-8.2顶层目录如下:

/home/share/gdb-8.2
(4)        创建bin目录,用于存放编译产物

mkdir -p bin

(5)        配置configure

./configure --prefix=/home/share/gdb-8.2/bin --host=arm-linux-gnueabi LD=arm-linux-gnueabi-ld CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++
注意上述--host   LD   CC  CXX几个字段一定要写,不然会使用默认的gcc/ld/g++等

(6)make -j8 && make install

产物目录如下:

/home/share/gdb-8.2/bin

如果要编译静态gdb(某些情况下,文件系统中 无elf解释器ld-linux.so.3,此时必须将elf文件,编译成静态),可如下修改:

vi ./gdb/Makefile.in 1918行,编译gdb时增加-static选项

gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
    $(SILENCE) rm -f gdb$(EXEEXT)
    $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \
    -static    -o gdb$(EXEEXT) gdb.o $(LIBGDB_OBS) \
        $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)

如此生成的gdb即为静态,无需解释器可直接运行,如下:

file bin/bin/gdb
bin/bin/gdb: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=8c91445ef6ac5ac7be07b1aa104eee7409af47c6, not stripped

gdbServer的编译方法和gdb相同,但需要先进入gdbserver目录(/home/share/gdb-8.2/gdb/gdbserver),然后执行(5)(6)操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值