目前,已经有许多内存检测的工具可供我们选择,如MallocDebug,Valgrind,Kcachegrind,dmalloc,NuMega,BoundsCheck,ParaSoft ,Insure++,Rational的 Purify等等。
Valgrind:
Valgrind是x86架构Linux上的多重用途代码剖析和内存调试工具。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C语言中的malloc和free或者C++中的new和delete。如果你使用了未初始化内存,在数组末端外设置内存或是忘记释放指针,Valgrind都可以检测出来。尽管Valgrind还可以做其它的工作,本教程仍然集中在如何使用它来发现内存相关错误,因为这也程序员经常出现的错误。
Windows用户不必沮丧,虽然在Windows上没有Valgrind可用,但是你可以试一试IBM的
Purify
,它在功能上和Valgrind相似。
获得Valgrind如果你正使用Linux但却没有安装Valgrind,可以去
这里
免费下载一份。
安装过程非常简单,只需要用bzip2解压缩下载的软件包并将其展开即可(下面例子中的XYZ是版本号)。
bzip2 -d valgrind-XYZ.tar.bz2
tar -xf valgrind-XYZ.tar
或者用更简单的方法:
tar jxf valgrind-XYZ.tar.bz2
这会创建一个叫valgrind-XYZ的目录,进入该目录并运行
./configure
make
make install
好了,现在你已经安装了Valgrind,可以开始了解如何用它了。