马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
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() |