valgrind是linux下非常优秀的一款内存检查的工具。它的官方网站是http://www.valgrind.org,从官网可以下到最新的源码包。
1.安装
标准gnu软件安装方式,./configure — make —- makeinstall
如果安装顺利,valgrind可执行程序已经被安装到/usr/bin下可以直接使用了
2.使用
valgrind提供了好几个tool可供使用,这里仅介绍最常用tool–memcheck的使用
标准调用方法是:
valgrind –tool=memcheck –leak-check=yes [command] [para]
其中command就是你的检测目标程序,para是该程序的参数
方便起见,可以自己做个alias,例如
alias memcheck=’valgrind –tool=memcheck –leak-check=yes’
放入~/.bashrc中,避免了每次都敲那么长的字符串
3.按2中的步骤调用了之后,你的程序就会被vargrind接管。
所有涉及内存分配释放的工作,vargrind都会看到。因此它可以帮你检测是否有泄漏发生。
4.需要注意的是,为了更好的调试,在代码调试阶段,编译时应该加上-g参数生成调试信息。
这样valgrind在检测时能够明确指出是程序的哪一行分配的内存。
否则它只能告诉你内存地址,看得你一头雾水。
先简单说这么多,根据20/80原则,valgrind这20%的功能足够解决你程序中80%的问题