CentOS6上编译安装GDB 8.1版本程记录(包括安装peda)

本文档详细记录了在CentOS6系统上如何从源码编译安装GDB 8.1版本,并且安装了调试增强工具peda。首先需要升级gcc到8.1,接着下载gdb源码,进行编译和安装。安装完成后,创建软链接指向新版本的gdb,并介绍了解决旧版本gdb安装peda后启动报错的方法,涉及对shellcode.py和peda.py的修改。

下载

我是在CentOS6下首先将gcc升级到8.1后才着手升级gdb的。如果直接采用旧版本的gcc编译,可能会由于源码中出现某些使用了新特性的情况导致中途报错。升级gcc的过程可以参考我的上一篇文章CentOS6上编译安装gcc8.1版本全过程记录(包括排坑与常见错误解决)。下面进入正题:

先到http://ftp.gnu.org/gnu/gdb/去找gdb最新的源码,然后下载即可。

sudo yum install glibc-devel bison flex texinfo build-essential
wget http://ftp.gnu.org/gnu/gdb/gdb-8.1.tar.xz
tar -xf ./gdb-8.1.tar.xz
cd ./gdb-8.1

如果目标机网络不好,则需要下载gdb源码到本地后上传。

编译

./configure --prefix=/usr/local/gdb8

配置完成之后就可以开始编译了,这里依据目标机配置选定make后的参数。

make -j8

编译完后进行安装

sudo make install

至此已将gdb8.1安装到了/usr/local/gdb8下。

软链接

先查看当前gdb的路径:

which gdb

发现在/usr/bin下。于是先进行备份:

cd /usr/bin
sudo mv ./gdb ./gdb.old

下面链接到新编译的gdb上:

cd /usr/local/gdb8/bin
sudo ln -s $(pwd)/gdb /usr/bin/gdb

安装增强工具

peda是肯定要装的:

git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit

顺便一提,旧版本的gdb可能出现安装peda后启动时报错的情况,这个问题主要是由python不同版本间的语法差异造成的,解决起来也很容易。
1. 先定位到shellcode.py文件,修改其中字典相关语法:
这里写图片描述
2. 还是shellcode.py文件,修改其中版本号获取代码:
这里写图片描述
3. 修改peda.py中版本号获取代码:
这里写图片描述
截图时有部分代码忘了截行号,如果出现类似问题,在启动gdb时会有相应的提示,对照其中标定的位置一看就知道了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值