以下博客中的链接都是大佬们提供的链接
gef插件源地址:https://github.com/hugsy/
根据要求:
gdb必须得8.0以上,python得3.6以上,但是一般裸机的gdb都是7.2,python是2.7。我们需要下载更高版本的gdb和python
先将系统自带的gdb删除:
sudo yum remove gdb
gdb8.0+安装:http://ftp.gnu.org/gnu/gdb
选择一个8.0+的版本的安装包,这里选择的是8.3
下载完后打开xshell(远程终端)将下载好的安装包拖入xshell
使用tar解压出来
以下步骤都在sudo(即root权限进行)
执行
sudo yum install texinfo
执行
sudo ./configure
执行
sudo make
执行
sudo make install
由于我们删除了系统的gdb,我们需要将编译好的gdb放入以下路径:
/usr/local/bin
方法如下:
注意:此时应该位于的路径是将压缩包解压出来的文件中
使用以下指令:
cd gdb
再使用以下指令:
sudo cp gdb /usr/bin/gdb
最后使用以下命令查看是否成功
gdb -v
python3.6+版本安装: wget http://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
下载完后同样进行解压缩操作
使用下面的命令进入解压缩后的文件中
cd Python-3.8.0
在编译前先在/usr/local路径下新建一个文件夹python3.8作为python3.8的安装路径,以免覆盖老的版本
sudo mkdir /usr/local/python3.8
使用以下指令编译安装(注意必须位于解压缩以后的文件路径中)
sudo ./configure --prefix=/usr/local/python3
sudo make
sudo make install
存储一份python2
sudo mv /usr/bin/python /usr/bin/python_old2
建立新版本python的链接
sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
使用以下指令查看是否设置成功
python -V
至此gdb和python的版本问题就解决了
使用以下命令将插件下载
git clone https://github.com/hugsy/gef.git
分别执行下面的三行代码
wget -q -O- https://github.com/hugsy/gef/raw/master/gef.sh | sh
wget -q -O ~/.gdbinit-gef.py https://github.com/hugsy/gef/raw/master/gef.py
echo "source ~/.gdbinit-gef.py >> ~/.gdbinit"
接下来需要进行配置.gdbinit,这里选择去github上下载一个
先去使用以下命令将配置文件下载下来
git clone https://github.com/gdbinit/Gdbinit.git
再使用以下指令更新.gdbinit
cp Gdbinit/gdbinit ~/.gdbinit
最后使用gdb应该是如下图情况:
gef插件即安装成功!
如果需要打印stl容器则可以使用以下的脚本
https://sourceware.org/gdb/wiki/STLSupport?action=AttachFile&do=view&target=stl-views-1.0.3.gdb
先将脚本下载下来然后拖入xshell,将文件下载下来,然后 改名为.gdbinit然后就可以正常使用stl-views-1.0.3.gdb