pahole安装及使用

前些天在寻找优化C语言内存占用的方法时看到了一篇文章觉得很好,链接http://blog.jobbole.com/57822/

其中提到了一个工具pahole挺好用,所以网上搜索一番,安装上体验了一下,挺实用的东西。


pahole可以用来检查结构体中的内存漏洞,可以作为内存优化的一个工具。

我是在ubuntu上安装的,其他linux系统应该差不多。

1.下载pahole源码:https://github.com/jmesmon/pahole

也可以去我的资源下载:http://download.csdn.net/detail/mynameislu/7195913,其中包含了pahole、libebl-dev和libz

解压后查看README文件进行安装


2.安装pahole

我在安装pahole时缺了以下几个东西

cmake ----------->sudo apt-get install cmake

libdw-dev --------->sudo apt-get install libdw-dev

libebl-dev --------->这个用apt-get没有找到,所以上网找了个.deb文件安装的https://launchpad.net/ubuntu/hardy/i386/libebl-dev/0.131-3

libz ----------->下载源码包,解压之后分别运行configure、make、make install即可。

上述内容安装完成后,进入pahole的源码目录。

cd pahole-master

mkdir build

cmake -D__LIB=lib ..

sudo make install

然后就完成安装了,默认安装到了/usr/local/目录下。


3.测试

test.c

#include <stdio.h>

typedef struct _st //这个地方必须要有结构体名称,否则pahole找不到结构体。

{

int a_int;

char b_char;

int c_int;

}st;


typedef struct _st2

{

int a_int;

char b_char;

char c_char;

int d_int;

}st2


int main()

{

st t;

st2 s; //需要使用结构体,否则pahole找不到结构体。

return 0;

}

编译test.c 时需要使用-g参数

gcc -g test.c -o test 或者 gcc -g -c test.c 生成test.o

编译完成后

pahole -V test 或 pahole -V test.o

打印出所有结构体的hole情况。


pahole -C _st test 或pahole -C _st test.o

只打印_st结构体的hole情况。


4.本文内容完,有发现比较好的工具的时候希望您能分享。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值