valgrind memorycheck基本使用

如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测 什么是valgrind:**valgrind是一个构建动态分析工具的框架,它提供了一系列的工具用于检测和分析内存管理和线程的bug。 其中,最常用的工具就是**Memcheck。 Memcheck能够检测出内存相关的,在C/C++中常见的可能导致程序Crashes以及发生不可预知错误的行为。valgrind本文将通过实例介绍如何使用valgrind进行内存泄漏检测。(再此之前我们的Linux上必须先 阅读详情

Reference:

http://valgrind.org/docs/manual/mc-manual.html : valgrind command line usage

https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto : 如何写一个suppression file


命令解析

<span style="font-size:18px;">valgrind --memcheck:leak-check=full --gen-suppressions=all --suppressions=qt.supp --suppressions=extern.supp --show-leak-kinds=definite,possible --errors-for-leak-kinds=definite,possible --log-file=gui-qt.log ./my_exec
</span>


这里 --gen--suppressions=all 每一个error后面都会跟随一个suppression, 用来过滤掉这个error.

--suppressions=qt.supp  用来过滤掉qt库中的memory 错误. 

--suppressions=extern.supp 用来过滤掉 其他一些库中的memory错误 (我们只关心自己的代码是否有内存泄露等问题)

--show-leak-kinds=definite,possible --errors-for-leak-kinds=definite,possible 只显示definite和possible的内存错误.

--log-file=gui-qt.log 错误信息输出到gui-qt.log


Suppression file

{
   <name>
   Memcheck:Leak
   ...
   obj:xx*.so
   fun:gdk_set_locale
}


名字可以为任意名字(可以重复)

Memcheck 屏蔽的错误种类包括:Cond, Addr8, Value8, and Leak

"..." 通配符任意库或函数

obj:需要屏蔽的库

fun:需要屏蔽的函数

example中的suppression,表示屏蔽掉xx*.so中gdk_set_locale的memory Leak错误.注意fun和obj的冒号后不能有空格.

我的qt.supp:

{
	<QtCore>
	Memcheck:Leak
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6
}

{
	<QtCore>
	Memcheck:Addr4
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6
}

{
	<QtCore>
	Memcheck:Addr8
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6
}


{
	<QtCore>
	Memcheck:Free
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6
}

{
	<QtGui>
	Memcheck:Leak
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6
}

{
	<QtGui>
	Memcheck:Addr4
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6
}

{
	<QtGui>
	Memcheck:Addr8
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6
}

{
	<QtGui>
	Memcheck:Free
	...
	obj:/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6
}





Qt Creator使用Valgrind代码分析工具 Qt Creator使用Valgrind代码分析工具使用Valgrind代码分析工具使用Memcheck检测内存泄漏分析函数执行 使用Valgrind代码分析工具 Qt Creator集成了Valgrind代码分析工具,用于检测内存泄漏和分析函数执行情况。您必须单独下载并安装它们才能从Qt Creator中使用它们。 您可以在开发主机上本地运行或在另一主机上远程运行Valgrind工具。您可以使用它们来分析在Qt Creator中为其建立了项目的应用程序和没有项目的应用程序。 Valgrind工具仅在Lin 阅读详情

相关推荐

【linux】Valgrind工具集详解(四):抑制错误

一、什么是抑制错误 错误检查工具可以检测系统库中的许多问题,例如C库,它是随操作系统预安装的。这些错误无法修复,并且有很多,但不希望看到这些错误。如何屏蔽这样错误就叫做“抑制错误”。 二、添加需要抑制错误的列表 ...

郭老二 2082

探索MemoryCheck:一个强大的内存检测工具

探索MemoryCheck:一个强大的内存检测工具 去发现同类优质开源项目:https://gitcode.com/ 项目简介 MemoryCheck是一个开源项目,位于,旨在帮助开发者轻松地检测和诊断应用程序中的内存问题。该项目利用先进的内存分析算法,为用户提供详细的内存泄漏报告,以提高软件的性能和稳定性。 技术分析 MemoryCheck的核心是其内存监测引擎,采用了以下关键技术: 动态内...

gitblog_00080的博客 717

使用openMVS对样例数据进行重建

openMVS根据github上的步骤进行编译。注意,如果没有GPU,用不了CUDA的话,那么需要在openMVS目录下找到CmakeLists.txt文件,把CUDA设置为OFF: SET(OpenMVS_USE_CUDA OFF CACHE BOOL "Enable CUDA library") 可执行的文件生成在openMVS_build/bin/里面,在openMVS_build文件夹下打开终端,按照顺序执行如下命令即可逐步重建。其中,-w 设置的是数据的总路径,-i 后接输入的文件名,-o

YuhsiHu的博客 2888

《valgrind之内存调试》

Valgrind之内存调试   摘要:由于C和C++程序中常常需要程序员自主申请和释放内存,在大型的、复杂的应用程序中就会常常出现内存错误。Valgrind是linux环境下的一款功能齐全的内存调试和性能分析工具集,它包括Memcheck、Callgrind、Cachegrind、Helgrind、Massif等工具。本文旨在介绍Valgrind工具集中的内存检测工具Memcheck的用法,以

浮生专栏 1万+

使用相对路径设置IAR的Additional include directories 以及 $PROJ_DIR$ 的用法

新建IAR工程时免不了要导入工程用到的头文件,那么导入头文时是用相对路径还是绝对路径呢?当然是相对路径了,因为绝对路径会有弊端,那就是,如果将来更换了工程放置的路径,那么这个相对路径就凉凉了,编译必然报错。所以最好还是用相对路径,那么相对路径怎么用呢? 请看以下 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 版权声明 本博文系广州欧科曼科技有限公司所有,转载请注明出处。 广州欧科曼科技有限公司致力于瑞萨MCU及周边相关产品开发设计。 ema

announced1的博客 5391

基于live555实现一个rtsp客户端程序

本文介绍了基于live555流媒体库实现的RTSP客户端程序,能够通过RTSP地址获取H.264/H.265裸码流或TS流数据并存入本地文件。详细阐述了使用CLion搭建工程的代码架构和CMake配置,重点分析了TS流解析模块的实现,包括TS包结构解析、PES包提取和ES裸流获取的完整流程。文章提供了TS/PES/ES三种数据包的协议说明,并给出了从TS流中提取视频帧的具体方法,最后附有工程代码下载链接。该方案实现了RTSP流媒体接收、解析和存储的完整功能链。

kk821521286的博客 790

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 报错如下图所示: 这里显示的是报错

xianquji1676的博客 786

PaddleOCRv5训练自己的模型-微调文字识别模型

本文介绍了使用PaddleOCR微调文字识别模型的具体步骤。首先需要按照官方格式准备数据集,包括图片和标注文件。然后进行模型训练,包括环境安装、预训练模型下载、配置文件修改等关键环节,特别针对训练中可能出现的类别数不匹配问题提供了三种解决方案。文章还详细说明了模型导出为静态图格式的方法,以及如何调用训练好的模型进行推理。整个过程涉及多个技术细节,如早停机制设置、断点续训方法等,为需要提升OCR识别精度的开发者提供了实用指导。

weixin_43827982的博客 3177

valgrind 忽略第三方模块

前言 valgrind 是检查内存泄漏的工具。如果我们的程序集成了第三方模块,但又不希望检查他们的内存泄漏问题,可以通过参数指定valgrind忽略他们。 suppressions 参数 suppressions 参数告诉valgrind忽略指定的错误,用法如下 valgrind --leak...

2039

LTspice仿真报错Timestep too small?5种实测有效的解决方法(附详细参数配置)

本文针对LTspice仿真中常见的“Timestep too small”报错,提供了5种经过实测有效的解决方案。从理解错误根源入手,详细介绍了调整求解器、仿真参数、优化精度容差、设置初始条件、为理想元件添加寄生参数以及使用高级指令等具体方法,并附有详细的参数配置步骤,帮助工程师快速定位并解决仿真收敛问题,提升电路设计效率。

weixin_29213655的博客 280

高通平台N4单路输入的720P相机预览

N4的一路720P Camera作为MIPI摄像头使用

llw21680的专栏 165

内存泄漏检测

一: 内存泄漏内存泄漏是编程中常常见到的一个问题. 内存泄漏往往会一种奇怪的方式来表现出来,基本上每个程序都表现出不同的方式. 但是一般 最后的结果只有两个,一个是程序当掉.一个是系统内存不足. 还有一种就是比较介于中间的结果程序不会当,但是系统的反映时间明显降低,需要定时的 Reboot才会正常.有一个很简单的办法来检查一个程序是否有内存泄漏.就是是用Windows的任务管理器 (Task Ma

yasmong的专栏 1623

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

k8291121的博客 1012

valgrind

欢迎访问我的博客。

sinoai 705

mindie部署qwen3-8b

2. 确认目录文件权限是否如下所示,若存在不匹配项,则参考以下命令修改权限。否则要stop容器之后重新start,重新从《以下是在容器中的操作》开始操作。ctrl +d 让命令停止之后,需要等待一段事件让其释放,否则还会有占用。1. 若安装路径为默认路径,执行如下命令,进入MindIE安装目录。# 配置CANN环境,默认安装在/usr/local目录下。3. 运行以下命令初始化各组件环境变量,并开启日志打印。如果报错,可能有些线程没法去除,删除容器重新操作。# 配置模型仓环境变量。以下是在容器中的操作。

andeyeluguo的博客 1036

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【021】动态分析检测内存缺陷:Valgrind 和 CMake/CTest 的集成

本文介绍了如何在CMake/CTest项目中集成Valgrind工具进行内存缺陷检测。通过创建一个包含内存泄漏的C++示例项目,展示了如何配置CMakeLists.txt文件来调用Valgrind的Memcheck工具。文章详细说明了查找Valgrind程序路径、设置检查参数的步骤,并演示了通过ctest命令触发内存检查的过程。最终Valgrind成功检测出示例中的内存泄漏问题,验证了该集成方案的可行性。这种方法能帮助开发者在早期发现内存错误和泄漏问题,提高代码质量和安全性。

Lion_Long的博客 791

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Chapter 12: Program Analysis Tools_《Modern CMake for C++》_Notes

Program Analysis Tools

C/C++ 1135

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

cmake-07-staticAnalysis

1. 静态分析 涵盖功能 Out of bounds errors Memory leaks Usage of uninitialized variables Use of unsafe functions 具体工具 (每一个都可能支持以上多数功能) valgrind cppcheck clang-Static-Analyzer clan-Format 2. Valgrind # use system installed valgrind tool cmake_minimum_re

uncle103的博客 170

Memcheck:一个内存错误检测器

目录 4.1。概观4.2。来自Memcheck的错误消息说明 4.2.1。非法读取/非法写入错误4.2.2。使用未初始化的值4.2.3。在系统调用中使用未初始化或不可寻址的值4.2.4。非法释放4.2.5。当一个堆块被释放不正当的解除分配功能4.2.6。重叠的源和目标块4.2.7。有趣的参数值4.2.8。内存泄漏检测 4.3。Memcheck命令行选项4.4。编写抑制文件4.5。Memche

swartz_lubel的专栏 2662

CMake Test编写

项目目录如下sum_integers为项目源文件。main为从命令行获取测试数据并调用sum_integers的功能,并返回计算结果。test为在test文件中设定测试数据,并调用相应的程序将测试数据传输给main的可执行文件。由main可执行程序计算,并返回计算结果。test获取计算结果,根据test文件中的设定,判断测试成功与否。PRIVATE# 查找valgrind,并将MEMORYCHECK_COMMAND设置为其绝对路径# 将相关参数传递给valgrind。

young_monkeysun的博客 1711

内存问题分析工具_valgrind之memcheck基本使用

1. 下载安装 下载地址:Valgrind: Current Releases 安装:例如版本 valgrind-3.18.1 tar xvf valgrind-3.18.1.tar.bz2 cd valgrind-3.14.0/ ./configure make sudo make install 2. 使用示例 valgrind --log-file=valgrind.log --tool=memcheck --leak-check=full --show-leak-kinds=all .

惊鸿一博 1975

valgrind神器之--memcheck内存使用情况检测

valgrind工具的--memcheck选项用来对内存使用情况的检测。对动态申请的内存有效,所有malloc()/free()/new/delete的调用都会被捕获;通常用来排查如下问题: 1、使用未初始化的内存 2、野指针访问(读/写已经被释放的内存) 3、内存泄漏 4、读写内存越界 使用及分析方法如下: 示例代码如下: // 文件名test.c 编译: gcc -g test.c -o test 执行内存检测: valgrind --tool=memche...

qq_16204285的博客 665

[转] Valgrind使用

调不尽的内存泄漏,用不完的Valgrind Valgrind 安装 1. 到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz2 2. 解压安装包:tar –jxvf valgrind-3.2.3.tar.bz2 3. 解压后生成目录valgrind-3.2.3 4. cd valgrind-3.2.3 5. 运行./autogen.sh设置环境(需...

weixin_30516243的博客 1329

memory check

介绍 关于物理内存的统计信息,可以通过/proc/phymem目录下的文件查看: 说明 /proc/phymem dist 显示物理内存使用分布信息 mem: 262144 kB |--mem_other: 15996 kB |--mem_linux: 246148 kB |--mem_reserved: 31268 kB |--mem_total:

1573

linux memory check commands

For checking the memory as in RAM   free /proc/meminfo     Disk Space   du shows what is visible df shows the filesystem     $ du -S /export/opt | sort –n | less     [root@xxx~]# df -h

走马观花 845
上一篇: 搜狗面板程序加载失败,请重启以使用输入法!
下一篇: linux 安装 配置 trash-cil
wegatron
博客等级 码龄18年 7粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值