一、使用配置
0. 下载Visual Leak Detector for Visual C++ 2008-2015最新版时V2.5.1支持到VC2015(Github也有源码可以下载自己编译)
1. 设置include目录(VS:C/C++ -> 常规 -> 附加包含目录; Qt Creator里面1 2 3步可以直接在项目右键添加库时完成或者直接.pro文件按照动态库的添加方式)
2. 设置lib目录(VS:链接器 -> 常规 -> 附加库目录)
3. 设置lib文件为vld.lib(VS:链接器 -> 输入 -> 附加依赖项)
4. 拷贝bin目录下对应平台32/64位的dll那几个文件到编译输出的exe目录下
5. 在main函数所在源文件添加vld的头文件 #include <vld.h>
二、使用注意
0. 只能在Debug模式调试,Release模式不会链接VLD
1. 只能检测程序执行过的代码中的内存泄漏,即如果你像检查哪一段代码是否有内存泄漏,则必须让程序先触发执行一遍那段代码
2. 只支持VC++编译器,Qt中使用则必须使用MSVC版本(可以先用MSVC来调试,没问题之后可以转MinGw编译Release)
3. Qt中如果调用对象的deleteLater()方法释放内存,则会被判定为内存泄漏,但是对于指定父对象的没有显式delete的并不会判为内存泄漏。
所以QT中如果想显式的释放一个对象最好用delete而不是调用对象的deleteLater()方法,这样才能被VLD检测到并且不会被误判。
4. 可以修改VLD的一些参数设置,即vld.ini文件中的设置参数,比如可以将检测信息定向到文件,默认是输出到调试器
ReportFile = 可以设置输出的文件
ReportTo = debugger # 默认是输出到调试器,如果要输出到文件需要改为file,也可以是both
StackWalkMethod = fast # 检测模式,默认是快速,可以设为safe,这样检测会更强但是效率会降低
————————————————
版权声明:本文为CSDN博主「DJH5520」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dream_5520/article/details/115721501