Valgrind工具简介

valgrind工具是一个linux下的调试可执行程序的工具,它可以检查内存泄露,内存越界。 valgrind由内核(core)以及基于内核的其他调试工具组成,内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具,其他工具则类似于插 件(plug-in),利用内核提供的服务完成各种特定的内存调试任务。 valgrind包括一系列工具,我们主要用到的是Memcheck,即程序内存使用的检查。 内存检测包括: 内存泄露 非法内存访问,使用已释放的内存 未初始化的内存 重复内存释放 使用超过malloc分配的内存空间 Malloc/free,new/delete申请和释放内存的匹配 更多的信息请访问valgrind官方网站: http://valgrind.org/

1.安装:

a.下载安装包     官方网站或其他网站下载linux版本的压缩包,例如本文使用的 安装包“valgrind-3.10.0.tar.bz2”。

b.解压缩安装包 tar –jxvf valgrind-3.10.0.tar.bz2

c.cd到解压后生成目录valgrind-3.10.0

d.运行./autogen.sh设置环境

e.  ./configure;配置Valgrind,生成MakeFile文件,具体参数信息详见INSTALL文件。一般只需要设置--prefix= ,如果安装在/roo/valgrind, ./configure --prefix=/home/a/valgrind/

f.  make;编译Valgrind

g. make install;安装Valgrind到指定的/home/a/valgrind/,同时将权限改成755,让其他用户也能执行 至此,Valgrind安装完成。

2.使用:

Valgrind是一个功能强大的工具,可以使用如下命令查看所有可带的参数 >valgrind --help 下面介绍内存检测有关的参数项。 --tool :选择要使用的功能,内次检测是memcheck --leak_check:对内存泄露给出详细的信息 3.  --show-reachable=yes  :检测能运行到,或间接丢失的块 4.  --trace-children=yes  :自动跟踪到子进程中 5.  --log-file=report.log     :检查结果文件最后生成report文件中,屏幕上并不打印错误 使用valgrind检测业务接口机的内存使用情况,要进行如下的设置: 先不起restpro进程,也就是不加载restpro运行; 用下面指令单独运行      valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes --log-file=/home/a/report.log restpro  

kill -15 杀掉进程后,检查报告会写入

valgrind -/home/a/report.log-tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes --log-file=/home/zxin100/nginx/sbin/report.log ./nginx

   

报告解析:

definitely lost: 0 bytes in 0 blocks   // //确认丢失 要修复

/可能丢失
==17310==      possibly lost: 0 bytes in 0 blocks
//可以访问,未丢失但也未释放
==17310==    still reachable: 72,704 bytes in 1 blocks
==17310==         suppressed: 0 bytes in 0 blocks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值