VS/(Qt+VS)内存泄漏检测
前言
看了网上很多关于这块的介绍,自己也跟着实践了下,在此记录VS/(Qt+VS)内存泄漏检测相关~~
VLD检测工具
下载链接:VLD(Visual Leak Detector)内存泄漏检测工具
在VS2017中配置VLD(Visual Leak Detector)内存泄漏检测工具
1、打开VS2017,创建一个工程,在资源管理器中的项目右键属性;
2、然后找到VC++目录,在包含目录中添加VLD的include目录,在库目录中添加VLD的lib目录,如图:
3、因为官方只支持到VS2015版本,VS2017在默认配置下可以检测到内存泄漏但是无法显示行号。
解决办法:
项目右键属性,找到链接器;
将所有选项中的生成调试信息选项改为:生成经过优化以共享和发布的调试信息(/DEBUG:FULL),然后确定。
4、配置好之后便可以编写代码,在代码中添加头文件,#include “vld.h”,
5、编译运行(Debug)
Qt内存泄漏检测
前提:仅支持MSVC编译器。
在安装好了VLD工具后,三步:
1、将vld安装目录下的include目录中的两个头文件复制到Qt默认的include目录下;
2、vld安装目录下的lib目录下对应的lib文件复制到Qt默认的lib目录下;
3、vld安装目录下的bin\Win32目录下的内容拷贝到PATH环境变量中。
这一步可能在安装的时候就已经自动帮你弄好了,可以查看一下
4、配置好后,在main.cpp中包含#include “vld.h”,Debug方式编译运行。我试了下,需要在运行成功后点击停止运行,输出栏里才会有内存泄漏打印信息:
ps:之前我有遇到过在Qt上用VLD工具,编译时程序异常退出的问题。后来多试了几次,莫名好了。可能是由于我按照网上有的人说需要在工程文件中引入包含文件和库目录什么乱七八糟的,才出现的吧~~