Windows MinGW编译all-target gdb

2020/11/16更新:
msys2的pacman已更新,现已不需要再自行编译gdb-multiarch,获取方式:
mingw-w64/msys2安装配置,gdb-multiarch安装


编译环境:win10 + MinGW msys
需要自行下载安装MinGW

  1. 打开msys shell

打开安装路径下的批处理文件:
MinGW\msys\1.0\msys.bat

  1. 下载并解压
wget http://ftp.gnu.org/gnu/gdb/gdb-9.2.tar.xz       # 下载
tar -xJf gdb-9.2.tar.xz                              # 解压
  1. 新建文件夹
cd gdb-9.2                         # 切换到解压目录
mkdir build output                 # 新建文件夹,build-用于编译;output-用于安装编译输出文件
  1. 配置并编译
../configure --enable-targets=all --enable-64-bit-bfd --prefix=e:/gdb-9.2/output/
make
make install

问题

  1. 使用MinGW不使用Cygwin的原因:

参考:https://stackoverflow.com/questions/32232495/binutils-build-fails-because-of-pex-unix-file
cygwin类型host,编译会出pex-unix file选用的错误。同样的问题,在windows下编译gcc和binutils时也会出现

  1. 关于all-target和gdb远程调试
  • 使用–enable-targets=all选项,使编译生成的GDB可以用于识别所有架构的可执行文件。
  • 对于gdbserver + gdb的调试模式,gdbserver是依赖目标架构的,而作为client端的gdb则可以通过编译选项的配置,使其可以用于解析运行在所有target的可执行文件。
  • 对于Linux端,
    参考:https://stackoverflow.com/questions/25143757/arm-linux-gnueabihf-gdb-versus-gdb-multiarch
    以Ubuntu为例,可以直接安装sudo apt-get install -y gdb-multiarch。
    使用gdb-multiarch作为gdb client调试多种目标程序。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值