目录
3.1VLD只在debug版本有效,不要在release版本测试
3.4如果有include"stdafx.h",则include 放在其后,否则放在最前面
1.下载安装VLD
官网地址:
Visual Leak Detector | Enhanced Memory Leak Detection for Visual C++ (kinddragon.github.io)
最新版本2.5.1,点击下载。下载好安装包后一路next就好,过程中会有安装目录选择,我是默认下载的,如果更改请记住自己的路径。
安装成功后,打开VLD的路径。我的默认路径如下:
C:\Program Files (x86)\Visual Leak Detector
2.配置vs
可以只在当前项目中使用,也可以将其添加到系统库目录中,之后在每个项目中都可以使用,更建议2.2的方式。
2.1如果只在当前工程中使用VLD
添加附加包含目录:
添加附加库目录:这里注意添加的版本需要与编译器一致
添加附加依赖项:
最后在需要检测的源文件中添加头文件使用就好
下面会有内存泄露的具体行号。点击定位修改即可。
关于调用动态链接库的一些步骤参考如下:
QT+VS调用动态链接库详细步骤(隐式链接调用)_vs和qt连接-CSDN博客
2.2将VLD添加为系统库,之后在每个项目中都能使用
点击解决方案资源管理器中外部依赖项中任.h右键找到所在路径。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include
打开这个路径,将VLD的头文件复制进来。
之后可以看到此目录的父目录下有lib文件夹
将VLD的lib库也复制进来。要注意对应的版本号。
至此已配置完成。引入头文件使用就好。
3.遇到的问题,以及注意事项
3.1VLD只在debug版本有效,不要在release版本测试
3.2VLD检测出来的错误调用栈帧没有显示具体的行号
正确的应该是这样的,会显示内存泄露的行号,点击行号,定位到内存泄露的位置。
这个错误我的是不小心工程名称中出现了特殊符号,要注意工程名称中不可以包含中文和特殊符号。
其次要注意的是将调试改为生成调试信息(/DEBUG),禁用优化。
3.3这类问题VLD检测不出来
检测结果是没有检测出内存泄露。