qtcreator VLD内存检测
简介
Visual Leak Detector是一款用于Visual C++的免费的内存泄露检测工具。相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点:
- 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号;
- 可以得到泄露内存的完整数据;
- 可以设置内存泄露报告的级别;
- 它是一个已经打包的lib,使用时无须编译它的源代码。而对于使用者自己的代码,也只需要做很小的改动;
- 他的源代码使用GNU许可发布,并有详尽的文档及注释。对于想深入了解堆内存管理的读者,是一个不错的选择。
下载安装
安装包下载。
默认安装,注意勾选:
配置
VLD 内存检测工具,只能检测使用VC++编译器(即MSVC类型编译器, 如果有安装VS则就有这编译器),不能用于检测MinGW编译器。
三种配置方式:
第一种
复制vld安装目录下include文件夹中的文件vld.h和vld_def.h到qt安装目录的include文件夹中。
将“vld安装目录/lib/Win64"或者“vld安装目录/lib/Win32"(注意位数,根据你的Qt库位数确定)下的vld.lib拷贝到Qt默认的lib目录,就完成安装了。
第二种
修改.pro文件,添加如下内容:
win32{
CONFIG(debug, debug|release) {
INCLUDEPATH += C:/software/VLD/include
DEPENDPATH += C:/software/VLD/include
LIBS += -LC:/software/VLD/lib/Win32 -lvld
}
}
注意:
C:/software/VLD
是自己的安装路径。- 配置完成后,重启qtcreator或者执行qmake。
第三种
直接在main.cpp
头部添加:
#pragma comment(lib,"C:/software/VLD/lib/Win32/vld.lib")
#ifdef _DEBUG
#include "C:/software/VLD/include/vld.h"
#endif
测试使用
建一个工程。在main.cpp中添加头文件。#include<vld.h>
或者:
#ifdef _DEBUG
#include "vld.h"
#endif
其他代码如下:
void test()
{
char *p = new char[5];
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
test();
return a.exec();
}
输出:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决