Qt+VS环境使用VLD内存检查工具
Qt+VS环境使用VLD内存检查工具
一、VLD介绍
VLD
(Visual Leak Detector)是一款用于Visual C++的免费的内存泄露检测工具。相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点:
-
可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号;
-
可以得到泄露内存的完整数据;
-
可以设置内存泄露报告的级别;
-
它是一个已经打包的lib,使用时无须编译它的源代码。而对于使用者自己的代码,也只需要做很小的改动;
-
他的源代码使用GNU许可发布,并有详尽的文档及注释。对于想深入了解堆内存管理的读者,是一个不错的选择。
-
VLD 内存检测工具,只能检测使用VC++编译器,不能用于检测MinGW编译器,所以要检测 Qt内存泄露问题编译器一定要是MSVC。
-
VLD 版本要2.X以上 不能使用1.X的版本。否则检测不准确,Qt检测会提示很多内存泄露。
二、下载VLD
下载地址: https://kinddragon.github.io/vld/
三、安装VLD工具
- 我下载的是VLD2.5.1版本,直接双击下载好的 vld-2.5.1-setup.exe文件。
- 全程默认安装就行,我这里的安装路径是 D:\APP\vld\Visual Leak Detector
- 安装好的目录底下如图所示
四、Qt上使用VLD工具
- 将“vld安装目录/lib/Win64"或者“vld安装目录/lib/Win32"(注意位数,根据你的Qt库位数确定)下的vld.lib拷贝到Qt默认的lib目录,就完成安装了。
- 复制vld安装目录下include文件夹中的文件vld.h和vld_def.h到qt安装目录的include文件夹中。
- 创建测试项目:使用Qt Creator创建一个Qt Widgets Application,要在Debug模式下运行
- 在Qt项目的main函数前面加上
#include<vld.h>
- 在main中加入语句
MainWindow *aaa = new MainWindow();
(内存泄漏点) - 项目存在内存泄漏,当程序退出时,会打印内存泄漏的信息