【Visual Leak Detector】配置项 StackWalkMethod

打印 上一主题 下一主题

主题 1004|帖子 1004|积分 3022

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
说明

使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 配置文件中配置项 StackWalkMethod 的使用方法。同系列文章目录可见 《内存泄漏检测工具》目录

目录


1. 配置文件使用说明

在程序中通过 #include "vld.h" 的方式检测内存泄漏时,VLD 首先会尝试在程序的生成目录下读取 vld.ini 文件,若未读取成功,则会尝试在 VLD 的安装目录下读取 vld.ini 文件,若仍未读取成功,则会使用内置的默认配置,内置的默认配置如果不动源码是无法更改的,因此通过修改相应目录下的 vld.ini 文件来定制 VLD 功能是最好的选择。当配置参数等号右边为空,或者给配置了不合法值时,在使用过程中会被程序重置到默认值。
2. 设置调用堆栈的跟踪方法

参数名:StackWalkMethod。
有效赋值:fast,safe。
默认值:fast。
功能说明:设置调用堆栈的跟踪方法。fast 方法速度快但跟踪的调用堆栈可能不完整,会漏掉一些;safe 方法能更可靠地获得完整的调用堆栈,但速度会慢很多,有可能导致被检测的程序性能出现显著下降,这时为了减少检测时间,可以将配置项 MaxTraceFrames 设置得小一些。
2.1 测试代码

[code]#include #include #include #include "vld.h"void testFun(int i){    if (i > 1)    {        testFun(i-1);    }else    {        int *ptr = new int(i);        printf("ptr = %08x, *ptr = %08x.\n", ptr, *ptr);    }}int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    QTime timedebuge;    timedebuge.start();    testFun(30);    qDebug()
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表