vld.ini配置文件说明

vld.ini配置文件说明

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;  Visual Leak Detector - 初始化/配置文件
;;  版权所有 (c) 2005-2017 VLD团队
;;
;;  本库是自由软件;你可以在自由软件基金会发布的GNU宽通用公共许可证的条款下
;;  重新分发它和/或修改它;无论是许可证的2.1版本,还是(由你选择的)任何后续版本。
;;
;;  本库分发的希望是它有用,
;;  但没有任何保证;甚至没有暗示的适销性或特定用途的适用性保证。有关更多详细信息,请参阅GNU宽通用公共许可证。
;;
;;  你应该已经收到一份GNU宽通用公共许可证的副本,随本库一起;如果没有,请写信给自由软件基金会,Inc.,51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
;;
;;  有关GNU宽通用公共许可证的完整条款,请参见COPYING.txt。
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; 任何留空或未出现的选项将恢复为它们的默认值。
[Options]

; 主开关。如果关闭,Visual Leak Detector将完全禁用。
; 它将什么都不做,只会向调试器打印一条消息,表明它已被关闭。
;
;  有效值:on(开),off(关)
;  默认值:on
;
VLD = on

; 如果是yes(是),则不会单独显示重复的泄漏(那些相同的)。
; 只显示第一个这样的泄漏,以及一个数字,表明重复泄漏的总数。
;
;   有效值:yes(是),no(否)
;   默认值:no
;
AggregateDuplicates = no

; 列出任何需要包括在内存泄漏检测中的额外模块。这可能对于检查第三方模块的调试构建中的内存泄漏很有用,
; 这些模块不能轻易地用'#include "vld.h"'重新构建。这个选项应该只在绝对必要且你确实知道你在做什么时使用。
;
;   警告:避免列出任何与发布版CRT库链接的模块。
;     只有与调试版CRT库链接的模块应该列在这里。
;     否则可能会导致虚假的内存泄漏报告或甚至崩溃。
;
;   有效值:包含模块名称的任何列表(即EXE或DLL的名称)
;   默认值:无。
;
ForceIncludeModules = 

; 对于每个泄漏块显示的最大数据字节数。如果为零,那么数据转储将被完全抑制,并且只显示调用栈。
; 如果泄漏块非常大,并在内存泄漏报告中造成不必要的混乱,限制这个数字到一个低值可能会很有用。
;
;   值值:0 - 4294967295
;   默认值:256
;
MaxDataDump = 

; 在泄漏检测期间追溯的最大调用栈帧数。
; 限制这个数字到一个低值可以减少内存泄漏检测所施加的CPU使用率开销,特别是当使用较慢的“安全”栈遍历方法时(见下面的StackWalkMethod)。
;
;   有效值:1 - 4294967295
;   默认值:64
;
MaxTraceFrames = 64

; 设置生成的内存泄漏报告使用的编码类型。这个选项实际上只有在与将报告发送到文件结合使用时才有用。
; 将Unicode编码的报告发送到调试器是没有用的,因为调试器不能显示Unicode字符。如果泄漏块中包含的数据很可能包含Unicode文本,使用Unicode编码可能会很有用。
;
;   有效值:ascii(ASCII),unicode(Unicode)
;   默认值:ascii
;
ReportEncoding = ascii

; 设置报告文件的目的地,如果启用了文件报告。可以指定相对路径,并认为是相对于进程的工作目录的。
;
;   有效值:任何有效的路径和文件名。
;   默认值:.\memory_leak_report.txt
;
ReportFile = .\memory_leak_report.txt

; 设置报告目的地为文件、调试器或两者。如果启用了文件报告,报告将发送到由ReportFile选项指定的文件。
;
;   有效值:debugger(调试器),file(文件),both(两者)
;   默认值:debugger
;
ReportTo = both

; 打开或关闭自测试模式,该模式用于验证VLD是否能够检测到自身的内存泄漏。
; 旨在用于调试VLD本身,而不是用于调试其他程序。
;
;   有效值:on(开),off(关)
;   默认值:off
;
SelfTest = off

; 选择用于遍历栈以获取分配内存块的堆栈跟踪的方法。“fast”(快速)方法可能不总是能够成功地完全追溯所有调用栈。
; 在这种情况下,“safe”(安全)方法可能更可靠地获得完整的堆栈跟踪。缺点是“safe”方法比“fast”方法明显慢得多,并且可能会导致正在调试的程序性能显著下降。
;
;   有效值:fast(快速),safe(安全)
;   默认值:fast
; 
StackWalkMethod = fast

; 确定是否应该为所有线程最初启用内存泄漏检测,或者是否应该为所有线程最初禁用内存泄漏检测。如果设置为“yes”(是),
; 那么任何需要启用内存泄漏检测的线程将需要在某个时刻调用VLDEnable来为这些线程启用泄漏检测。
;
;   有效值:yes(是),no(否)
;   默认值:no
;
StartDisabled = no

; 确定是否追踪所有帧,包括堆内部的帧。总会有一定数量的帧是Visual Leak Detector和C/C++或Win32堆API内部的,
; 这些通常对于确定泄漏的原因并不有用。通常在堆栈跟踪中跳过这些帧,这可以在一定程度上减少追踪所花费的时间以及收集和存储在内存中的数据量。
; 包括堆栈跟踪中的所有帧,一直到VLD自己的代码,对于调试VLD本身可能很有用。
;
;   有效值:yes(是),no(否)
;   默认值:no
;
TraceInternalFrames = no

; 确定是否报告缺少HeapFree调用的内存泄漏。
;
;   有效值:yes(是),no(否)
;   默认值:no
;
SkipHeapFreeLeaks = no

; 确定是否报告由crt启动代码生成的内存泄漏。这些不是实际的内存泄漏,因为它们在VLD对象被销毁后由crt释放了。
;
;   有效值:yes(是),no(否)
;   默认值:yes
;
SkipCrtStartupLeaks = yes
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Leak Detector是一款用于Visual C++的免费的内存泄露检测工具。相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点: 1、 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号; 2、 可以得到泄露内存的完整数据; 3、 可以设置内存泄露报告的级别; 4、 它是一个已经打包的lib,使用时无须编译它的源代码。而对于使用者自己的代码,也只需要做很小的改动; 5、 他的源代码使用GNU许可发布,并有详尽的文档及注释。对于想深入了解堆内存管理的读者,是一个不错的选择。 可见,从使用角度来讲,Visual Leak Detector简单易用,对于使用者自己的代码,唯一的修改是#include Visual Leak Detector的头文件后正常运行自己的程序,就可以发现内存问题。从研究的角度来讲,如果深入Visual Leak Detector源代码,可以学习到堆内存分配与释放的原理、内存泄漏检测的原理及内存操作的常用技巧等。 下面让我们来介绍如何使用这个小巧的工具。 首先解压得到vld.h, vldapi.h, vld.lib, vldmt.lib, vldmtdl l.lib, dbghelp.dll等文件。将.h文件拷贝到Visual C++的默认include目录下,将.lib文件拷贝到Visual C++的默认lib目录下,便安装完成了。因为版本问题,如果使用windows 2000或者以前的版本,需要将dbghelp.dll拷贝到你的程序的运行目录下,或其他可以引用到的目录。 接下来需要将其加入到自己的代码中。方法很简单,只要在包含入口函数的.cpp文件中包含vld.h就可以。如果这个cpp文件包含了stdafx.h,则将包含vld.h的语句放在stdafx.h的包含语句之后,否则放在最前面。如下是一个示例程序: #include
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值