1.下载一份valgrind (http://valgrind.org/)
2. 用tar -xf valgrind-XYZ.tar 或者 tar jxf valgrind-XYZ.tar.tar解压
3. ./configure
make
make install
如上就安装好了
4.例程:
1.新建一个叫memory的文件夹在里面写文件memo.cpp
#include <stdio.h>
#include <string.h>
int main()
{
char* jj = "jlksjfklsdjfkl";
char* pp = new char[255];
strcpy(pp, jj);
printf("%s/n", pp);
// delete []pp;
return 0;
}
2.在memory文件夹里写文件makefile
CPP=/usr/bin/g++
DIST_DIR=../memory
CPPFLAGS = -g -o2 -fexceptions -DLINUX -I./ -I/include
TESTPATH=../memory
SRCS = ${TESTPATH}/memo.cpp
OBJS=$(SRCS:.cpp = .o)
all:dist
dist:${OBJS}
mkdir -p $(DIST_DIR)
$(CPP) $(CPPFLAGS) $(OBJS) -o $(DIST_DIR)/test
%.o : %.cpp
$(CPP) $(CPPFLAGS) -c -o $@ $^
cl:
rm -rf *.o
rm -rf test
3. make 后生成可执行文件test
4.运行test并检查是否有内存泄露,键入 valgrind --tool=memcheck --leak-check=yes test
其中一部分的显示内容如下,指出在memo.cpp的第8行分配的内存没有释放
==29984== 255 bytes in 1 blocks are definitely lost in loss record 1 of 1
==29984== at 0x4004F19: operator new[](unsigned) (vg_replace_malloc.c:195)
==29984== by 0x80484D3: main (memo.cpp:8)