内存泄露检测工具VLD(Visual Leak Detector)使用说明

article/2025/9/18 16:43:06

目录

一、内存泄漏问题

二、VLD工具使用说明

1 下载VLD

2 安装VLD

3 使用VLD(第一个种方法)

3.1 附加头文件目录

3.2 附加库目录。

4 使用VLD(第二个种方法)

4.1 打包VLD_SDK

4.2 附加头文件目录

4.3 附加库目录。

5 引入vld.h头文件

6 特别需要注意的地方

6.1 执行程序需要以下文件

6.2 使用Debug版本排查问题

7 vld.ini参数设置说明


一、内存泄漏问题

内存泄露是经验不足的程序猿最常遇到的,非常难处理的一类型错误。导致的问题也千奇百怪,很难定位。

最好的办法当然是养成良好的编码习惯,比如声明了指针数据或者指针类之后。

1.优先在对应的构造函数中,赋初值pXXX = nullptr;

2.牢记在指针使用完成之后进行if(e!= nullptr){delete e;  e=nullptr;} 或者if(e!= nullptr){delete []e;e=nullptr;}

3.局部变量问题,在某个函数中new出了指针数据或者指针类,那么请牢记在当前函数退出的任何一个地方,请如2所说,安全删除指针数据或者指针类。

4.尽可能使用vector来代替指针数组,多重指针等。避免出差错的可能性。

但是,如果问题已经积累比较久,还有你可能接手了别人的代码,发现此类问题。那么,可以使用内存泄露检测工具VLD(Visual Leak Detector)来协助排查问题。

二、VLD工具使用说明

1 下载VLD

到GitHub下载最新的VLD程序Release v2.5.1 · KindDragon/vld (github.com)。页面最下方

2 安装VLD

安装到自己喜欢的路径即可,比如D:\Program Files\Visual Leak Detector

3 使用VLD(第一个种方法

3.1 附加头文件目录

因为安装VLD的exe后,系统继承了VLD对应的环境变量路径。

下图中,如果能看到第二个箭头这里,有继承的值,可以直接勾选第三个箭头即可。

3.2 附加库目录。

因为安装VLD的exe后,系统继承了VLD对应的环境变量路径。

下图中,如果能看到第二个箭头这里,有继承的值,可以直接勾选第三个箭头即可。

4 使用VLD(第二个种方法

4.1 打包VLD_SDK

找到VLD安装目录D:\Program Files\Visual Leak Detector提取对应的头文件和库相关文件,打包成VLD_SDK ,如下图

4.2 附加头文件目录

打开VS和想要检测内存泄露问题的项目属性里,增加附加头文件目录。

下图中,如第一个箭头所指。后放到项目中的Lib文件夹下;

4.3 附加库目录。

下图中,如第一个箭头所指,把打包的VLD_SDK库目录添加进来。

5 引入vld.h头文件

找到程序入口的函数处,增加一行代码,导入头文件#include "vld.h",编译程序并运行。

测试程序如下:

#include "stdafx.h"
#include <iostream>
#include "vld.h"void test()
{char* pChar = new char[20];//delete[] pChar;return;
}int _tmain(int argc, _TCHAR* argv[])
{test();return 0;
}

那么我们可以看到VLD在VS输出窗口输出的内容。

-------------------------华丽的分割线-------------------------------------------

Visual Leak Detector Version 2.5.1 installed.
WARNING: Visual Leak Detector detected memory leaks!
---------- Block 1 at 0x00552290: 20 bytes ----------
  Call Stack:
    e:\test\consoleapplication1\consoleapplication1\consoleapplication1.cpp (10): ConsoleApplication1.exe!test + 0x7 bytes
    e:\test\consoleapplication1\consoleapplication1\consoleapplication1.cpp (18): ConsoleApplication1.exe!wmain
    f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (533): ConsoleApplication1.exe!__tmainCRTStartup + 0x19 bytes
    f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (377): ConsoleApplication1.exe!wmainCRTStartup
    0x7507336A (File and line number not available): kernel32.dll!BaseThreadInitThunk + 0x12 bytes
    0x770F92B2 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x63 bytes
    0x770F9285 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x36 bytes
  Data:
    CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
    CD CD CD CD                                                  ........ ........


Visual Leak Detector detected 1 memory leak (56 bytes).
Largest number used: 56 bytes.
Total allocations: 56 bytes.
Visual Leak Detector is now exiting.

--------------------------------------------------------------------------

双击vld提示的内存泄漏的行号信息,那么我们就可以直接定位到有内存泄漏的地方。

6 特别需要注意的地方

6.1 执行程序需要以下文件

引入vld.h的头文件之后,需要在执行程序exe目录下,放入以下文件,否则程序无法正常启动。

6.2 使用Debug版本排查问题

只有Debug模式和排查内存泄露问题,在程序正常关闭之后,会打印相关的泄露信息。

7 vld.ini参数设置说明

默认读取的是安装目录下的vld.ini 文件,当exe所在目录下也有vld.ini文件时会优先读取这份配置。

VLD:选择VLD的打开与关闭。在Debug模式下运行,关闭以后会有一行VLD关闭的提示信息。默认为 on。

AggregateDuplicates:设置为 yes 时,相同地方产生内存泄漏只输出一次,但是会统计发生的次数。默认是 no 。

MaxDataDump:输出的dump数据个数,默认为 256。

MaxTraceFrames:输出的调用栈的层数。默认是 64。

ReportEncoding :report 文件的编码格式,可选有 ascii, unicode,默认是 ascii 。

ReportFile :report 文件的路径。默认是 “.\memory_leak_report.txt”

ReportTo :可选有 debugger, file, both,debugger 表示输出到 debug模式下的输出窗口;file 表示只输出到文件中; both顾名思义,全都都输出。默认是 debugger 。

备注:怎么让VLD的文件输出到一个独立的文件中?

答:配置 ReportFile = .\你的程序名称_vldLog.txt 和 ReportTo = both 即可。


http://chatgpt.dhexx.cn/article/uQAPF1Mk.shtml

相关文章

【矩阵论】范数和矩阵函数(2)

范数及矩阵函数之收敛性与矩阵函数 定义矩阵的范数是为了讨论矩阵的收敛性。 注&#xff1a;范数和矩阵函数这个系列的&#xff08;1&#xff09;&#xff08;2&#xff09;等划分是按照章节来的&#xff0c;与视频的分集并不完全一致。 一. 收敛定理 1. 按坐标收敛 2. 按范数…

向量范数和矩阵范数的理解

向量范数 今天来聊一聊机器学习矩阵论的相关知识——范数&#xff08;Norm&#xff09;。 在学习机器学习基础算法的推导过程中&#xff0c;可以看到很多地方都应用到了这个范数。范数属于矩阵论的知识范围&#xff0c;可见数学基础的重要性。 机器学习的数学基础重点推荐—…

【矩阵论】范数和矩阵函数(1)

范数及矩阵函数之范数的概念 首先将本章的内容做以下大致的梳理&#xff1a; 我们通过范数的概念来解决矩阵函数的问题&#xff0c;利用矩阵的函数可以解决很多实际问题。 一. 概念与定义 1. 范数与赋范线性空间 &#xff08;1&#xff09;范数——向量空间上的满足某些性质…

矩阵范数与矩阵的模

矩阵范数&#xff08;matrix norm&#xff09;是数学中矩阵论、线性代数、泛函分析等领域中常见的基本概念&#xff0c;是将一定的矩阵空间建立为赋范向量空间时为矩阵装备的范数。应用中常将有限维赋范向量空间之间的映射以矩阵的形式表现&#xff0c;这时映射空间上装备的范数…

【数学】向量范数和矩阵范数(几种范数 norm 的简单介绍)

目录&索引 一、什么是范式&#xff1f;二、向量范式1-范数2-范数P-范数∞-范数-∞-范数 三、矩阵范式1-范数2-范数∞-范数F-范数 四、小结 一、什么是范式&#xff1f; 范数&#xff0c;是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域&#xff0c;范数是…

鬼畜视频制作必备——vegas pro特别版歌声合成工具UTAU

很好奇鬼畜是怎么做出来的&#xff1f;绝大部分up主用的必备的就是vegas&#xff0c;剪视频比较全能&#xff0c;比如&#xff1a;添加字幕、旋转视频、导入导出视频、导入导出视频等等&#xff0c;同时还提供了先进的悬停取消技术、高分辨率格式高达4K的音频素材以及支持4K UH…

平板电脑必装十大软件_知乎高赞回答:职场新人必装的电脑软件有哪些?太全了!...

本文首发于知乎,我觉得对大家很有帮助,因此同步了过来。 来源 :Tools指南知乎号 之前在微博上看到一篇文章,其中有一点让我很诧异:一个新入职的员工,不知道用什么软件打开rar压缩包。 但想到我刚入职场时,也是这个样子,马上就释然了。 但有一个新的问题出现了:刚入职场…

动态图册用HTML怎么制作,imgplay gif动图制作如何使用?imgplay图文使用教程

imgplay是一款利用图片、视频就能轻松制作GIF的应用软件。通过这款软件&#xff0c;大家可以切身感受拍照片和视频时的精彩瞬间&#xff0c;下面小编就为大家讲解imgplay软件的使用方法。 推荐下载&#xff1a; 软件名称&#xff1a;imgplay gif动图制作软件 3.0.1 官网安卓版软…

Filmigo视频剪辑VIP,这是一款多功能视频编辑、影片剪辑、图片美化、视频/音频制作 影音软件,功能强大!

《Filmigo视频剪辑》介绍&#xff1a;这是一款多功能视频编辑、影片剪辑、图片美化、视频/音频制作、配乐美颜影音软件&#xff0c;是一款简单易用的视频编辑、视频裁剪与视频剪辑工具&#xff0c;获得2018年google paly“娱乐奖项”应用APP&#xff1b;全球超过三千万视频剪辑…

视频编辑软件,哪款好?

过完了快快乐乐的圣诞节&#xff0c;拍了很多美美的照片&#xff0c;单独将照片一张一张放出来是不是显得太过于单调了&#xff0c;如果将美美的照片整合成一个美美的视频&#xff0c;那么是不是会吸粉更多呢&#xff1f;&#xff01; 要制作出一部画面精良的视频&#xff0c;…

android系统视频剪辑app推荐,知乎10w人收藏:玩短视频必装的9款剪辑App(最全)...

声明&#xff1a;本文来自于微信公众号 微果酱(ID&#xff1a;wjam123456)&#xff0c;作者&#xff1a; 橙子&#xff0c;授权站长之家转载发布。 做运营的 每天都要面临一些新难题 比如老板想追潮流做短视频 吐血写脚本、拍完视频 磨刀霍霍向猪羊准备剪视频 打开电脑剪辑软…

会声会影2022正式版一键式视频剪辑软件

多场景适用&#xff0c;会声会影2022适用于个人、商店或是企业&#xff0c;可满足vlog视频、影视混剪、游戏解说、电子相册制作、淘宝主图视频、企业宣传片、线上网课制作等需求!下载末尾会声会影教程参考! 基础剪辑&#xff0c;一应俱全 剪切 分割、删除、合并一气呵成&…

超全,短视频制作必备工具

都知道短视频是当下的热门领域&#xff0c;也有很多的普通人借助短视频平台走红&#xff0c;令人艳羡不已。那么&#xff0c;短视频到底怎么创作呢&#xff1f;下面就按照短视频的制作流程&#xff0c;给大家盘点一下超实用的那些工具&#xff1a; 01 选题——即时热榜 为什么…

手机音频拼接软件_自媒体视频,手机剪辑有哪些软件推荐?

做自媒体视频&#xff0c;很多人是用手机拍摄&#xff0c;手机剪辑&#xff0c;那么有哪些比较好用的手机剪辑软件呢&#xff1f; 剪映&#xff1a;一款全能免费抖音官方剪辑工具。 模板&#xff0c;比较多&#xff0c;更新快&#xff0c;在【灵感】里&#xff0c;进去之后随便…

android视频编辑功能,万能视频编辑器

万能视频编辑器app是一款专业免费的视频剪辑客户端应用&#xff0c;万能视频编辑器软件不仅有超全的剪辑所需工具&#xff0c;还有上百种视频特效&#xff0c;用户可以随时diy剪辑视频&#xff0c;万能视频编辑器支持多格式随意转化。 软件介绍 万能视频编辑器&#xff0c;一款…

三阶魔方玩法

参考&#xff1a;三级魔方还原公式_哔哩哔哩_bilibili

魔方还原的七步法

首先&#xff0c;破解魔方&#xff0c;我们就要先了解它的结构&#xff0c;魔方共6色6面&#xff0c;每面又分为中央块&#xff08;最中间的块6个&#xff09;、角块&#xff08;4角的块8个&#xff09;和边块&#xff08;4条边中间的块12个&#xff09;。其中中央块只有1个面&…

魔方还原公式

在开始魔方还原教程前&#xff0c;我们先来了解一下魔方的构造及其名称&#xff1a; R: 右侧面顺时针旋转&#xff0c;R’: 右侧面逆时针旋转, R2: 右侧面旋转180度 L: 左侧面 … 同理 F: 正面 … 同理 B: 背面 … 同理 U: 顶面 … 同理 首先要完成底面和底层的还原&#xff0…

三乘三魔方教程,按步骤来肯定能搞出来

分享一个我的公众号&#xff0c;最近突然想玩公众号&#xff0c;之前做过一段时间前端开发&#xff0c;考虑到现在应用程序越来越多&#xff0c;未来社会一定是一个充满“只有你想不到&#xff0c;没有你做不到”的App的世界&#xff01;而微信小程序又给我们这群喜爱开发的童鞋…