简介
libheap 是一个在 Linux 平台上用于分析堆空间分配情况的 python 库,它是配合 gdb 使用的。在 libheap 的 github 仓库 中列出了它经过测试可以支持的 Linux 环境以及安装指导,然而我按照官方的安装指导出了点问题,最终是按照自己的理解完成了安装。
系统环境
- Ubuntu 14.04 LTS amd64
- glibc 2.19
- python 2.7.6
安装过程
0x01
官方安装指导中首先提及,“尽管 libheap 不要求 glibc 使用 gdb 调试支持和符号进行编译,但如果有的话 libheap 将会更好地工作“。因此最好满足这个要求,在 Ubuntu 上的工作十分简单:
apt-get install libc6-dbg
0x02
然后克隆官方仓库:
git clone https://github.com/cloudburst/libheap
克隆完成后进行安装:
cd libheap
python setup.py install
0x03
安装完成后,还需要在 libheap 库安装目录下找到 libheap.cfg 文件,手动设置 glibc 版本号。在我的系统上路径如下:
sudo vim /usr/local/lib/python2.7/dist-packages/libheap/libheap.cfg
查得 glibc 版本号为 2.19,因此这样设置:
1 [Glibc]
2 version = 2.19
查看 glibc 版本号可以使用如下方法:
ldd --version
0x04
最后,在 gdb 调试过程中导入 libheap 库即可正常使用了。但是每次手动导入毕竟很麻烦,因此我们可以利用 gitinit 文件,该文件中的指令在每次 gdb 启动的时候都会被自动执行。
首先查得 gitinit 文件的路径如下:
/etc/gdb/gitinit
然后在该文件中添加如下指令:
# System-wide GDB initialization file.
python import sys
python sys.path.append("/usr/local/lib/python2.7/dist-packages/")
python from libheap import *
至此,安装完成。