Qt中使用Visual C++ 内存泄露检测工具(VLD)

VLD
VLD(Visual Leak Detector)是一款用于 Visual C++ 的免费内存泄露检测工具。相比较其它内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点:

可以得到内存泄漏点的调用堆栈,如果可以的话,还能得到其所在文件及行号;
可以得到泄露内存的完整数据;
可以设置内存泄露报告的级别;
它是一个已经打包的 lib,使用时无须编译源码。对于使用者自己的代码,只需要做很小的改动;
源码使用 GNU 许可发布,并有详尽的文档及注释。对于想深入了解堆内存管理的读者,是一个不错的选择。

可见,VLD 简单易用。只需要做很小的改动(添加库并包含头文件),然后正常运行自己的程序,就可以发现内存问题;如果深入源码,可以学习到堆内存分配与释放的原理、内存泄漏检测的原理及内存操作的常用技巧等。
下载、安装
https://kinddragon.github.io/vld/

安装后的文件夹中主要包括:
bin:包含 dbghelp.dll、vld_x86.dll 文件
include:包含 vld.h、vld_def.h 文件
lib:包含 vld.lib 文件

QT中使用VLD

1、在pro文件中加入库的

win32: LIBS += -L$$PWD/'../../../../Program Files (x86)/Visual Leak Detector/lib/Win64/' -lvld
INCLUDEPATH += $$PWD/'../../../../Program Files (x86)/Visual Leak Detector/lib/Win64'
INCLUDEPATH += $$PWD/'../../../../Program Files (x86)/Visual Leak Detector/include'
DEPENDPATH += $$PWD/'../../../../Program Files (x86)/Visual Leak Detector/lib/Win64'

2、

#include "mainwindow.h"
#include <QApplication>
#include <vld.h> //加入头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    char *name = new char[5];
    return a.exec();
}

3、效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u011370855/article/details/88409602