准备工作:
- 下载自己所需的gdb源码
- Windows上安装好cygwin,作为移植工具
- 新建gdb文件夹,作为此次编译的工作空间
- 新建gdb/build文件夹,作为编译临时目录
- 新建gdb/install文件夹,作为安装目录
- 打开cygwin,切换到build文件夹下
开始编译gdb
我们要编译的gdb主要分几种:
- 适用于32位x86目标机的gdb
- 适用于32位loongson目标机的gdb
- 适用于32位ppc目标机的gdb
- 通用所有平台的gdb
平台配置参数
x86: i686-elf
arm: arm-elf
mips: mips-elf
ppc: powerpc-eabi
configure参数
../gdb-7.8/configure --target=i686-elf --prefix=f:/gdb/install
../gdb-7.8/configure --target=powerpc-eabi --prefix=f:/gdb/install
../gdb-7.2/configure --target=mips-elf --disable-werror --enable-interwork --enable-multilib --prefix=f:/gdb/install
../gdb-7.2/configure --target=arm-elf --disable-werror --enable-interwork --enable-multilib --prefix=f:/gdb/install
通用所有平台并支持64位的gdb
../gdb-7.8/configure --enable-targets=all --enable-64-bit-bfd --prefix=f:/gdb/install
编译步骤
以所有平台的gdb为例
../gdb-7.8/configure --enable-targets=all --enable-64-bit-bfd --prefix=f:/gdb/install make make install
编译完成后的检查
若把../gdb/bin/gdb.exe拖到cygwin执行成功,则编译成功。
编译脱离cygwin,可直接点击运行,需做的处理
在gdb文件夹下的bin文件夹下拷贝出gdb.exe,放到cygwin的bin文件夹下,点击看能否执行成功。
若成功,则把cygwin整个文件夹拷贝出来。然后一个个剔除掉不需要的文件。
最后只留下gdb.exe和其相关文件。
当然,也可以直接点击gdb.exe按照提示补充对应的文件,但这样可能最终仍无法执行。
现在,我已经把需要的文件整理出来了,以后只需把编译的gdb.exe提出来放到整理好的文件里面就可以了。
**注意,如果是使用的支持所有的体系结构的gdb,需要指定。命令是:set gnutarget *(elf64-x86-64)