解决vld内存泄露检测工具只支持到vs2015的问题,visual studio2015以上版本安装vld内存泄漏检测工具[实测vs2022生效]

发布时间:2024年01月25日

一.vld工具下载

Visual Leak Detector github链接: https://kinddragon.github.io/vld/

下载直达链接: https://github.com/KindDragon/vld/releases/tag/v2.5.1

下拉至网页最低端,下载红色框选安装应用程序
在这里插入图片描述

二.vld应用安装

1.从下载路径中,找到vld-2.5.1-setup.exe应用程序,双击打开。
在这里插入图片描述
2.进入vld内存泄漏检测工具安装欢迎页面。点击“Next”。
在这里插入图片描述
3.选择“I accept the agreement”按钮同意协议,点击“Next”。
在这里插入图片描述
4.选择vld安装路径,建议默认路径,没多大没必要改,在此选择默认。点击“Next”。
在这里插入图片描述
5.确认路径信息,点击“Next”。
在这里插入图片描述
6.选择是否配置环境变量,安装到的vs版本,在此选择默认,即使想要安装的vs版本超过vs2015,也不用管,目的是安装上之后剪切.h文件和.lib文件。点击“Next”。
在这里插入图片描述
7.确认信息,点击“Install”。
在这里插入图片描述
8.点击安装后,由于没有安装vs2008-vs2015之间的版本,会弹出警告窗口,正常确认关闭或叉掉就可以了,让他正常安装进度条走完。
在这里插入图片描述
9.安装成功。点击“finish”退出。
在这里插入图片描述
10.进入自己前面选择的安装路径,能看到Visual Leak Detector文件夹。至此说明已经正确安装vld。
在这里插入图片描述

三.visual studio2022环境配置

1.进入到vld安装路径下Visual Leak Detector文件夹内,能看到以下文件。
在这里插入图片描述
2.打开其中include文件夹,复制文件夹内的两个vld.h、vld_def.h文件。
在这里插入图片描述
3.找到visual studio安装路径下的include文件夹所在位置。随意新建一个命令行应用项目,点击解决方案中----外部依赖项----随便一个.h文件----右键----属性—复制属性中的完整路径,我们需要路径下的include文件所在位置。
某些Visual Studio在文件右键时能够直接点“打开文件所在位置”,不需要点属性。注意自己打开的include路径中是否有VC、MSVC字样,避免找到其他文件夹中造成位置错误。
在这里插入图片描述
4.将复制的两个vld相关的.h文件粘贴到visual studio目录中inlcude文件夹中。
在这里插入图片描述
5.从当前include路径下,选择include路径的上级路径,进入该路径下的lib文件夹中。能看到x64 x86两个文件夹。
在这里插入图片描述
6.回到vld安装路径下,找到文件夹内lib文件夹。
在这里插入图片描述
7.lib文件夹中有两个子文件夹,分别为win32 win64文件夹,每个文件夹中都有一个.lib文件。
在这里插入图片描述
8.将win32文件夹内lib文件粘贴到visual studio安装目录下lib文件夹的x86文件夹中,将win64中的lib文件粘贴到vs目标lib文件夹中的x64文件夹内。
在这里插入图片描述
在这里插入图片描述
9.至此,vld和visual studio间的环境配置已经完成。

四.visual studio2022 vld内存检测测试

1.利用visual studio创建一个命令行应用工程用作vld内存泄漏检测的测试。从默认生成的main函数最上方包含vld.h头文件,从图中能看出,头文件还没敲完已经有了头文件选择提示。包含vld.h,正常是存在路径的,如果前面配置错误,那么就从属性----VC++ 目录----包含目录中,包含vld的inlcude文件夹路径。
在这里插入图片描述
2.注意vld只在debug环境下才生效,点击编译,输出命令行窗口,能后看出vld已经正常执行,当前运行没有内存泄漏。
在这里插入图片描述
3.main函数中动态分配一个double *a指针,不进行内存释放,在此编译,能够从命令行窗口中看出红色框选部分,存在1处泄漏,8bytes,刚好是我们没有释放的1个double大小。vld使用正常。
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_44011863/article/details/135830832
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。