本人微信公众号:CPP进阶之旅
如果觉得这篇文章对您有帮助,欢迎关注 “CPP进阶之旅” 学习更多技术干货
一、VLD简介
VLD(Visual Leak Detector)是一款用于 Visual C++ 的免费内存泄露检测工具。相比较其它内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点:
- [1] 可以得到内存泄漏点的调用堆栈,还能得到其所在文件及行号(Visual studio在输出的调试信息里直接双击即可定位到内存泄漏的位置);
- [2] 可以得到泄露内存的完整数据;
- [3] 可以设置内存泄露报告的级别;
它是一个已经打包的 lib,使用时无须编译源码。对于使用者自己的代码,只需要做很小的改动;源码使用 GNU 许可发布,并有详尽的文档及注释。对于想深入了解堆内存管理的读者,是一个不错的选择。VLD 简单易用,只需要做很小的改动(添加库、包含头文件),然后正常运行自己的程序,就可以用来发现内存问题了。如果深入源码,可以学习到堆内存分配与释放的原理、内存泄漏检测的原理及内存操作的常用技巧等。
对于高版本的vs可以通过配置工程属性的方式,设置一下,防止不能定位到内存泄漏的具体行号。安装完成后,会自动将其include目录添加到VS的附加安装目录,将其静态库目录(lib目录)添加到VS的附加库目录,无需手动添加include目录和lib目录。
二、测试代码
/*
** vld官网地址:
** https://kinddragon.github.io/vld/
*/
#include <iostream>
#include <vld.h>
using namespace std;
void Func(){
shared_ptr<int> num (new int[10]);
//int * m_data = new int[100];
}
int main()
{
Func();
return 0;
}
三、重要说明
欢迎关注我的个人微信公众号,查看专业的客户端/服务端开发知识、笔试面试题目、程序员职场经验与心得分享。
vld官网地址:https://kinddragon.github.io/vld/
vld下载地址:https://download.csdn.net/download/siyacaodeai/15047978