参考链接:
VLD(Visual LeakDetector)内存泄露库的使用
一、源码下载
源码下载链接:
https://github.com/KindDragon/vld
解压后目录结构如下:
二、编译
1、打开解决方案:\sourceCode\vld\vld_vs14.sln,只需要编译libformat和vld,其他项目直接卸载即可:
2、项目工程的默认平台工具集是VS2015,因此需要修改项目属性的SDK版本和平台工具集到与本机VS相同的版本,由于内存检测一般在debug模式下使用,因此VLD的项目配置和调用vld.dll的上层系统的项目配置都应该选择为Debug x64或者Debug x86:
3、VLD默认支持VS2015及以下版本,但是VS2015以上版本也是兼容的,因此直接将vld.cpp中的平台限制代码注释掉即可:
/*#if _MSC_VER > 1900
#error Not supported VS
#endif*/
4、VLD项目配置和上层项目(调用VLD进行内存检测的项目)项目配置
VLD项目工程编译配置:
配置 —— Debug x64
配置属性 —— C/C++ —— 代码生成 — 运行库 —— 多线程调试 (/MTd)
上层项目(调用VLD进行内存检测的项目)工程编译配置:
配置 —— Debug x64
配置属性 —— C/C++ —— 代码生成 — 运行库 —— 多线程调试 (/MTd)
链接器 —— 调试 —— 生成调试信息 —— 生成经过优化以共享和发布的调试信息 (/DEBUG:FULL)
上层项目工程需要导入的静态库:
\vld\sourceCode\vld\src\bin\x64\Debug-v142\libformat.lib
\vld\sourceCode\vld\src\bin\x64\Debug-v142\vld.lib
上层项目运行时需要链接的动态库:
\vld\sourceCode\vld\src\bin\x64\Debug-v142\vld_x64.dll
\vld\sourceCode\vld\setup\dbghelp\x64\dbghelp.dll
上层项目源码需要包含的头文件:
\vld\sourceCode\vld\src\vld.h
\vld\sourceCode\vld\src\vld_def.h
上层项目需要配置的配置文件:
\vld\sourceCode\vld\vld.ini
ReportFile = .\memory_leak_report.txt
ReportTo = file
\vld\sourceCode\vld\setup\dbghelp\x64\Microsoft.DTfW.DHL.manifest
5、运行结果
如果没有内存泄露,则memory_leak_report.txt中的内容如下: