梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

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

 

posted on 2011-11-04 16:36  梦书  阅读(6087)  评论(0编辑  收藏  举报