Linux使用valgrind来检测程序的内存泄漏
1.到http://valgrind.org/下载最新版本的valgrind
2.加压后,可以查看README文件,参照readme的指示进行如下的操作:
1). Run ./configure, with some options if you wish. The only interesting
one is the usual --prefix=/where/you/want/it/installed.
2). Run "make".
3). Run "make install", possibly as root if the destination permissions
require that. --- Ubuntu下需要root权限,即应该这样运行: sudo make install
4). See if it works. Try "valgrind ls -l". Either this works, or it
bombs out with some complaint. In that case, please let us know
(see www.valgrind.org).
可能会出现以下的错误:
valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: index valgrind: in an object with soname matching: ld-linux.so.2 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux.so.2 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Cannot continue -- exiting now. Sorry.
以上错误,是因为在Ubuntu下还需要一个LIB:libc6-dbg
运行:sudo apt-get install libc6-dbg 以安装libc6-dbg
然后再次运行: valgrind ls -l
使用的时候,可以按照如下的方式使用:
valgrind --tool=memcheck --leak-check=full ./hellworld