linux valgrind Memcheck--内存检查工具
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--内存检查工具相关推荐
- linux valgrind memCheck ---内存检查工具的可视化方法valkyrie
linux valgrind memCheck -内存检查工具的可视化方法valkyrie linux valgrind Memcheck–内存检查工具 1.安装valgrind valgrind 安 ...
- valgrind 简介(内存检查工具)
1. valgrind 简介 1. valgrind 简介 1.1. 概图 1.2. 特点 1.3. 使用示例 1.4. 参数说明 1.4.1. 常用参数 1.4.2. 展示 1.4.3. 子进程.动 ...
- 【调试】Linux下超强内存检测工具Valgrind
[调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...
- Valgrind——memcheck内存泄漏分析
文章目录 概述 memcheck检测原理 内存泄露分类 明确泄露 间接泄漏 可能泄漏 仍可访达 其他的内存错误检查类型 非法读/写内存 使用未初始化的变量 系统调用传递不可访问或未初始化内存 不对应的 ...
- linux设置内存转储,八大Linux/Unix服务器内存转储工具
话说工欲善其事必先利其器,当你对Linux/Unix服务器内存进行转储时,手边需要有得力的工具.国外媒体盘点了八款Linux/Unix服务器内存转储工具.一起来看看. LiME(Linux Memor ...
- Linux手动内存转储,转:八大Linux/Unix服务器内存转储工具
话说工欲善其事必先利其器,当你对Linux/Unix服务器内存进行转储时,手边需要有得力的工具.国外媒体盘点了八款Linux/Unix服务器内存转储工具.一起来看看. LiME(Linux Memor ...
- Linux入门:内存测试工具(Memtest86+)
一.memtest86+ 接触到memtest86+是因为Linux,但是这个内存测试工具并不是依附于Linux: memtest86+ 是一款内存测试工具,但是这款软件不能够在windows或Lin ...
- iphone内存检查工具leak
iphone下面检查内存的工具,大家都知道是leak,而且这个工具也很强大,可以这么说,只要是它报出来的泄露,基本上都是自己程序代码的问题, 当然,有的时候它没那么智能,报的位置不是那么准确,它基本上 ...
- linux shell脚本 静态检查工具 shellcheck 简介
简介 shellcheck 是一款实用的 shell脚本静态检查工具. 首先,可以帮助你提前发现并修复简单的语法错误,节约时间.每次都需要运行才发现写错了一个小地方,确实非常浪费时间. 其次,可以针对 ...
最新文章
- 一句话总结K均值算法
- 自学python有用吗-文科专业自学python有用吗?
- Java字符串的10大热点问题盘点
- 【转载保存】Lucene7.1.0超详细的使用文档
- java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载
- 朴宥拉短片突破了几百万的观看量
- 在matlab下实现TDOA定位算法性能仿真
- [转载] python json unicode utf-8处理总结
- c语言文件操作——复制文件
- activity和service之间的相互通信方法
- 计算机知识竞赛形式,关于计算机知识竞赛试题
- python 读取geotiff_python gdal 写GeoTiff文件
- IOT:基于oblog的应用
- 妙不可言的JASTVIN云域网,用过的都说好!你怎么看
- 使用dns-over-https 手动测试域名解析
- C# async / await 任务超时处理
- 问道娃娃进阶技能学习方法及技能效果图文介绍
- Alpha版本冲刺(七)
- 小牛情报APP最强攻略
- web程序中获取当前地理位置
热门文章
- java内存数据管理
- java结束全部操作代码_Java创建与结束线程代码示例
- python subprocess_python subprocess
- 2017计算机nit考试时间,关于2017年专接本NIT考试,你知道多少呢???
- html怎么设置只显示一行,如何利用CSS控制文本只在一行显示(不换行)
- 查看oracle的表空间使用,查看Oracle的表空间的使用情况
- 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...
- 内联函数inline
- java 对象被回收的例子_Java对象的后事处理——垃圾回收(二)
- 计算机二级无法完成初始化,2012年计算机等级考试二级C语言常见问题:声明和初始化...