linux valgrind Memcheck–内存检查工具

使用方法:
注意,这里要用debug版本,如果是release的运行文件,则用debug编译出来的可执行文件替换

输出到终端:

valgrind --tool=memcheck --leak-check=full ./test.out

输出到文件:

 valgrind --tool=memcheck --leak-check=full  --log-file=test.log  ./test.out

报错如下图所示:

这里显示的是报错时候的函数调用堆栈,默认显示12层,所以这里的最底层的函数并不一定是你的调用函数,而可能是由于限制显示不出来而已,

可以有参数指定可显示的堆栈层数,自行百度

忽略指定错误(例如第三方库的报错)
比如glibc就会报一堆的错误,然而我们并不关心,所以我们可以选择忽略这个错误,

1、先加 --gen-suppressions=all 参数运行一遍 ,

valgrind  --tool=memcheck   --gen-suppressions=all --log-file=test.log  ./test.out

在日志文件test.log 中就会看到每一个报错上面都会紧接着一个规则块,这个规则块用于忽略这个错误,

如图:

然后把想忽略的错误的规则块,复制一下,新建一个valgrind.supp的文件(后缀是.supp就行,名称其实没关系),

把复制的规则块拷贝进去,规则块可以有多个,如下:

2、当然这里显示的很详细,这个块里有动态库的信息,有函数的信息,这个块我们可以做一个扩展,

比如我想屏蔽这个函数的所有错误,如下, 我想renderScene 这个函数相关的所有报错,就在它下面加上三个点 (…)

{
<insert_a_suppression_name_here>
Memcheck:Addr4
obj:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
obj:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
obj:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so
fun:_ZN16QSGBatchRenderer8Renderer17renderMergedBatchEPKNS_5BatchE
fun:_ZN16QSGBatchRenderer8Renderer13renderBatchesEv
fun:_ZN16QSGBatchRenderer8Renderer6renderEv
fun:_ZN11QSGRenderer11renderSceneERK11QSGBindable
fun:_ZN11QSGRenderer11renderSceneEj

}

3、屏蔽整个动态库的所有报错, 在这个库的前后都加三个点,一般还需要加上addr8的一个块(这里就不展开来讲了,照写就行)

{
<insert_a_suppression_name_here>
Memcheck:Addr4

obj:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so

}

{
<insert_a_suppression_name_here>
Memcheck:Addr8

obj:/usr/lib/x86_64-linux-gnu/dri/i965_dri.so

}

4、使用.supp文件运行valgrind,忽略指定错误

valgrind  --tool=memcheck --suppressions=valgrind.supp    --log-file=test.log  ./test.out

linux valgrind Memcheck--内存检查工具相关推荐

  1. linux valgrind memCheck ---内存检查工具的可视化方法valkyrie

    linux valgrind memCheck -内存检查工具的可视化方法valkyrie linux valgrind Memcheck–内存检查工具 1.安装valgrind valgrind 安 ...

  2. valgrind 简介(内存检查工具)

    1. valgrind 简介 1. valgrind 简介 1.1. 概图 1.2. 特点 1.3. 使用示例 1.4. 参数说明 1.4.1. 常用参数 1.4.2. 展示 1.4.3. 子进程.动 ...

  3. 【调试】Linux下超强内存检测工具Valgrind

    [调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...

  4. Valgrind——memcheck内存泄漏分析

    文章目录 概述 memcheck检测原理 内存泄露分类 明确泄露 间接泄漏 可能泄漏 仍可访达 其他的内存错误检查类型 非法读/写内存 使用未初始化的变量 系统调用传递不可访问或未初始化内存 不对应的 ...

  5. linux设置内存转储,八大Linux/Unix服务器内存转储工具

    话说工欲善其事必先利其器,当你对Linux/Unix服务器内存进行转储时,手边需要有得力的工具.国外媒体盘点了八款Linux/Unix服务器内存转储工具.一起来看看. LiME(Linux Memor ...

  6. Linux手动内存转储,转:八大Linux/Unix服务器内存转储工具

    话说工欲善其事必先利其器,当你对Linux/Unix服务器内存进行转储时,手边需要有得力的工具.国外媒体盘点了八款Linux/Unix服务器内存转储工具.一起来看看. LiME(Linux Memor ...

  7. Linux入门:内存测试工具(Memtest86+)

    一.memtest86+ 接触到memtest86+是因为Linux,但是这个内存测试工具并不是依附于Linux: memtest86+ 是一款内存测试工具,但是这款软件不能够在windows或Lin ...

  8. iphone内存检查工具leak

    iphone下面检查内存的工具,大家都知道是leak,而且这个工具也很强大,可以这么说,只要是它报出来的泄露,基本上都是自己程序代码的问题, 当然,有的时候它没那么智能,报的位置不是那么准确,它基本上 ...

  9. linux shell脚本 静态检查工具 shellcheck 简介

    简介 shellcheck 是一款实用的 shell脚本静态检查工具. 首先,可以帮助你提前发现并修复简单的语法错误,节约时间.每次都需要运行才发现写错了一个小地方,确实非常浪费时间. 其次,可以针对 ...

最新文章

  1. 一句话总结K均值算法
  2. 自学python有用吗-文科专业自学python有用吗?
  3. Java字符串的10大热点问题盘点
  4. 【转载保存】Lucene7.1.0超详细的使用文档
  5. java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载
  6. 朴宥拉短片突破了几百万的观看量
  7. 在matlab下实现TDOA定位算法性能仿真
  8. [转载] python json unicode utf-8处理总结
  9. c语言文件操作——复制文件
  10. activity和service之间的相互通信方法
  11. 计算机知识竞赛形式,关于计算机知识竞赛试题
  12. python 读取geotiff_python gdal 写GeoTiff文件
  13. IOT:基于oblog的应用
  14. 妙不可言的JASTVIN云域网,用过的都说好!你怎么看
  15. 使用dns-over-https 手动测试域名解析
  16. C# async / await 任务超时处理
  17. 问道娃娃进阶技能学习方法及技能效果图文介绍
  18. Alpha版本冲刺(七)
  19. 小牛情报APP最强攻略
  20. web程序中获取当前地理位置

热门文章

  1. java内存数据管理
  2. java结束全部操作代码_Java创建与结束线程代码示例
  3. python subprocess_python subprocess
  4. 2017计算机nit考试时间,关于2017年专接本NIT考试,你知道多少呢???
  5. html怎么设置只显示一行,如何利用CSS控制文本只在一行显示(不换行)
  6. 查看oracle的表空间使用,查看Oracle的表空间的使用情况
  7. 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...
  8. 内联函数inline
  9. java 对象被回收的例子_Java对象的后事处理——垃圾回收(二)
  10. 计算机二级无法完成初始化,2012年计算机等级考试二级C语言常见问题:声明和初始化...