在Release版本下使用VLD
前提
同Debug版本在VC中配置好VLD的相关信息,拷贝
Visual Leak Detector\bin\Win32目录下所有的文件和vld.ini到工程目标路径下。
强制检测
在程序入口处的cpp中,定义强制检测宏和包含vld头文件
#define VLD_FORCE_ENABLE
#include "vld.h"
在程序启动和退出时,分别增加以下函数调用
{
...
VLDGlobalEnable();
VLDReportLeaks();
//some code...
VLDGlobalDisable();
}
增加检测模块
以上配置后,默认情况下只会检测主程序的模块,要想增加其他模块的内存泄露检测,需要配置vld.ini文件中的ForceIncludeModules,多个模块用";"分隔,如:
ForceIncludeModules = demo1.dll;demo2.dll
配置输出方式
默认只会在调试下的终端中打印内存泄露信息,可配置vld.ini文件中的ReportTo为both,这样可以同时想终端和文件中打印信息,如:
ReportTo = both
作者:龙翱天际
链接:https://www.jianshu.com/p/1fb05cfdc76d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
在Release版本下使用VLD的更多相关文章
- VC++2005、VC2008中Release版本设置为可调试的设置方法
一.很多时候需要在Release版本下调试程序,可以使用以下方法设置: 1.无效断点所在的项目和启动项目的设置:项目->属性->配置属性->C/C++->常规->调试信息 ...
- QT在release版本产生pdb文件
##环境说明 QtCreator QtLibrary 编译器 Qt Creator 2.7.0 4.8.4-msvc msvc9.0(VS2008) ##背景说明 >项目中需要对发布版本追踪崩溃 ...
- MFC下debug改成release版本出现问题及解决办法
自己在debug下成功运行了自己写的测试自己写第三方库的程序,这里有用到opencv库,所以同时用到了自己的库和opencv的库,需求因为要进行速度的测试,是想要把debug改成release版本,这 ...
- Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)
Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...
- 使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象
如题(“使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象”). 今天使用ffmpeg进行宿放和颜色格式转换,很简单的代码,却折腾了我一天,这里说来就气啊 ...
- vs2010下release版本调试设置
设置在Release模式下调试的方法: 1.工程项目上右键 -> 属性 2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi) ...
- vs2010下设置release版本调试设置
设置在Release模式下调试的方法: 1.工程项目上右键 -> 属性 2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能( ...
- VS2010 release编译下进行调试,“当前不会命中任何断点,还没有为文档加载”问题解决方案
在release模式下调试程序,经常出现"当前不会命中任何断点,还没有为文档加载"的问题,可尝试以下方法: 1. 属性 → 配置属性 → C/C++ → 常规 → 调试信息格式:选 ...
- 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理
Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...
随机推荐
- 『TensorFlow』线程控制器类&变量作用域
线程控制器类 线程控制器原理: 监视tensorflow所有后台线程,有异常出现(主要是越界,资源循环完了)时,其should_stop方法就会返回True,而它的request_stop方法则用于要 ...
- RabittMQ安装和Erlang安装教程
安装Erlang 官方安装地址文档: http://www.rabbitmq.com/install-rpm.html 根据官网的推荐 进入到专为RabbitMQ整理的极简版Erlang https: ...
- configure、make 和 make install 的区别
Linux编译安装中configure.make和make install各自的作用 ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GC ...
- MVC跨域API
API using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Ne ...
- box-sizing的用法
默认情况下设置盒子的width是指内容区域,所以在设置边框会使得盒子往外扩张,如果要让css设置的width就是盒子最终的宽度,那么就要设置box-sizing:border-box, ...
- QFileSystemModel中通过flags函数反应代码的层级思考
Qt的Model/View设计中,有一些隐藏的代码,它们大多放在私有类里,对于类的作用非常关键,体现着Qt的整体设计思想.然而,由于它们比较隐蔽,学习起来比较繁琐,受到人们的忽视.然而,体现设计思想, ...
- linux c 输出信息到console
static void console_log(const char *format, ...) { static FILE *fpConsole; if (fpConsole == NULL) { ...
- Js/使用js来改变图片的url
1.使用js的方式来改变url地址: $('#a1').attr("src","test1.jpg");这种方式来改变图片的url地址: 而不是采用$('#a1 ...
- easyui datagrid去掉全选按钮
第一步: F12查看元素,选中全选按钮,把全选按钮的class里边加上display:none属性.找到对应的class,即.datagrid-header-check. 第二步: 在加载 表格的时候 ...
- opencv读取摄像头实时流代码
opencv读取摄像头实时流代码: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...