Valgrind 是个开源的工具,功能很多。例如检查内存泄漏工具---memcheck。

安装:

1)官网下载:http://www.valgrind.org/downloads/ , 下载tar.bz2之后,可以传送到linux。更方便的是用linux的wget命令直接下载: wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2,wget后面的下载地址,鼠标右击网站上的文件名,赋值链接即可。

2)tar -jxvf valgrind-3.13.0.tar.bz2

3)参照其README文件,按照指示安装:

To install from a tar.bz2 distribution:

  a. Run ./configure, with some options if you wish.  The only interesting one is the usual --prefix=/where/you/want/it/installed.

    我令prefix=/usr/local/valgrind3.13.0,这样所有的安装文件都在这个目录,卸载时只要删除这个文件即可。

  b. Run "make".

  c. Run "make install", possibly as root if the destination permissions require that.

  d. 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).

安装完成后,在terminal能自动识别valgrind指令,应该是在安装过程中自动加入了环境变量吧,执行make install时要求我以root身份啦。

Important!  Do not move the valgrind installation into a place different from that specified by --prefix at build time.  This will

cause things to break in subtle ways, mostly when Valgrind handles fork/exec calls.

用法:

valgrind [options] prog-and-args

[options]: 常用选项,适用于所有Valgrind工具

 -tool=<name> 最常用的选项。运行 valgrind中名为toolname的工具。默认memcheck。

memcheck ------> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,  比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。

callgrind ------> 它主要用来检查程序中函数调用过程中出现的问题。

cachegrind ------> 它主要用来检查程序中缓存使用出现的问题。

helgrind ------> 它主要用来检查多线程程序中出现的竞争问题。

massif ------> 它主要用来检查程序中堆栈使用中出现的问题。

extension ------> 可以利用core提供的功能,自己编写特定的内存调试工具

-h –help 显示帮助信息。

    -version 显示valgrind内核的版本,每个工具都有各自的版本。

    -q –quiet 安静地运行,只打印错误信息。

    -v –verbose 更详细的信息, 增加错误数统计。

    -trace-children=no|yes 跟踪子线程? [no]

    -track-fds=no|yes 跟踪打开的文件描述?[no]

    -time-stamp=no|yes 增加时间戳到LOG信息? [no]

    -log-fd=<number> 输出LOG到描述符文件 [2=stderr]

    -log-file=<file> 将输出的信息写入到filename.PID的文件里,PID是运行程序的进行ID

    -log-file-exactly=<file> 输出LOG信息到 file

    -log-file-qualifier=<VAR> 取得环境变量的值来做为输出信息的文件名。 [none]

    -log-socket=ipaddr:port 输出LOG到socket ,ipaddr:port

REF:

https://www.cnblogs.com/AndyStudy/p/6409287.html

Valgrind工具------可以分析内存泄漏的更多相关文章

  1. Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java

    Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java 1. 内存区域的划分 1 2. PermGen内存溢出深入分析 1 3. PermGen OOM原因总结 ...

  2. 使用Memory Analyzer tool(MAT)分析内存泄漏(二)

    转载自:http://www.blogjava.net/rosen/archive/2010/06/13/323522.html 前言的前言 写blog就是好,在大前提下可以想说什么写什么,不像投稿那 ...

  3. 使用Memory Analyzer tool(MAT)分析内存泄漏

    前言的前言 写blog就是好,在大前提下可以想说什么写什么,不像投稿那么字字斟酌.上周末回了趟成都办事,所以本文来迟了.K117从达州经由达成线往成都方向走的时候,发现铁路边有条河,尽管我现在也不知道 ...

  4. 【转】如何使用MAT分析内存泄漏

    原文链接:http://www.lightskystreet.com/2015/09/01/mat_usage/ MAT - Memory Analyzer Tool 使用进阶 Sep 1, 2015 ...

  5. 性能监控 | MAT分析内存泄漏

    使用MAT分析内存泄漏(二)八周年重印版 - 知乎 .u-safeAreaInset-top { height: constant(safe-area-inset-top) !important; h ...

  6. 使用androidstudio 分析内存泄漏

    分析内存泄漏 http://www.jianshu.com/p/c49f778e7acf

  7. 如何使用memstat 插件分析内存泄漏问题

    对于内存泄漏问题,如何分析并找到内存泄漏的原因是个难点.KingbaseES 提供了memstat 扩展插件用于分析内存泄漏的原因. 一.使用 memstat 插件 1.修改shared_preloa ...

  8. 使用Memory Analyzer tool(MAT)分析内存泄漏(一)

    转载自:http://www.blogjava.net/rosen/archive/2010/05/21/321575.html 前言 在平时工作过程中,有时会遇到OutOfMemoryError,我 ...

  9. android 中如何分析内存泄漏

    转载:http://blog.csdn.net/fulinwsuafcie/article/details/8363218 前提条件: 1,电脑安装了java 运行环境 2,手机端开启了 USB 调试 ...

随机推荐

  1. golang-指针

    package main import "fmt" func main() { var p *int =&a //定义指针变量p,传递a的地址 //指针:指针就是地址,指针 ...

  2. MySQL事务(脏读、不可重复读、幻读)

    1. 什么是事务? 是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作:这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行:事务是一组不可再分割的操作集合(工作逻辑单元): ...

  3. centos7下修改docker工作目录

    应用环境: docker安装时如果不指定家目录(也就是工作目录),一般默认工作目录是 /var/lib/docker ,很多时候需要修改到大容量磁盘上进行存储,这里记录一下修改默认路径为 /data/ ...

  4. elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index.

    elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index. 这里是因为版本不匹配的问 ...

  5. 用sublime3编写运行16位汇编程序_详细教程

    最近需要学8086汇编,课堂教学竟然是PPT看代码,然而不运行程序是没法学编程的.网上的教程有很多坑点,摸索出了正确的步骤. 1.安装sublime3.安装MASM32.64位系统安装DOSBOX(因 ...

  6. 深度学习面试题10:二维卷积(Full卷积、Same卷积、Valid卷积、带深度的二维卷积)

    目录 二维Full卷积 二维Same卷积 二维Valid卷积 三种卷积类型的关系 具备深度的二维卷积 具备深度的张量与多个卷积核的卷积 参考资料 二维卷积的原理和一维卷积类似,也有full卷积.sam ...

  7. hibernate如何配置自动生成表

    hibernate自动生成表有两种方法: 1.直接写代码,通过方法来创建数据库表. 2.通过 hibernate.cfg.xml配置标签来创建数据表. 下面依次实现: 1.直接写代码,通过方法来创建数 ...

  8. GPS 经纬度

      经纬度地图: http://www.gpsspg.com/maps.htm http://www.gzhatu.com/dingwei.html 经纬度格式转化 http://www.gzhatu ...

  9. chrome下载提示网络错误

    问题背景:项目开发测试阶段出现该问题. 复现:开发调试过程中一直没有问题,本地下载excel.Word.pdf 都完美,但是在服务部署到服务器之后,测试环境的chrome就总是下载失败,提示网络错误. ...

  10. GIS地理工具案例教程——栅格分割

    GIS地理工具案例教程--栅格分割 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 目的:利用多边形要素类去分割栅格,每个多边形裁剪出对应的范围 ...