【Visual Leak Detector】配置项 SelfTest

说明

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

1. 配置文件使用说明

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

2. 设置是否开启泄漏自检

参数名SelfTest

有效赋值onoff

默认值off

功能说明:打开或关闭自检模式。每次使用 VLD 时,除了检查需检测的程序是否有内存泄漏外,它也在检查自己是否有内存泄漏。将这个选项设置为 on 时,VLD 会有意地泄漏少量内存:一块大小为 22 bytes 的内存,填充内容为 'Memory Leak Self-Test' 这个长度为 21 的字符串。这个配置项提供了一种方法来测试 VLD 检查自身内存泄漏的能力,并验证该能力是否正常工作。这个配置项只对调试 VLD 自身有用。

2.1 测试代码

#include <QCoreApplication>
#include "vld.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    return a.exec();
}

测试环境:QT 5.9.2MSVC 2015 32bitDebug 模式,VLD 版本为 2.5.1,VLD 配置文件只对该参数做修改,测试工程所在路径为:E:\Cworkspace\Qt 5.9\QtDemo\testVLD

2.2 SelfTest = off 时的输出

VLD 输出报告:

Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
Visual Leak Detector Version 2.5.1 installed.
No memory leaks detected.
Visual Leak Detector is now exiting.

2.3 SelfTest = on 时的输出

VLD 输出报告:

Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
Visual Leak Detector Version 2.5.1 installed.
    Performing a memory leak self-test.
No memory leaks detected.
Visual Leak Detector is now exiting.
ERROR: Visual Leak Detector: Detected a memory leak internal to Visual Leak Detector!!
---------- Block 6 at 0x01430810: 22 bytes ----------
  Call Stack:
    vld.cpp (439): Full call stack not available.
  Data:
    4D 65 6D 6F    72 79 20 4C    65 61 6B 20    53 65 6C 66     Memory.L eak.Self
    2D 54 65 73    74 00                                         -Test... ........

Visual Leak Detector passed the memory leak self-test.

2.4 输出结果对比

  • SelfTest = off 时 VLD 没有故意泄漏内存。
  • SelfTest = on 时 VLD 故意泄漏了一块 22 bytes 的内存用于展示自检功能,同时没有影响到正常的检测功能。

原文链接:https://www.cnblogs.com/young520/p/17263212.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【Visual Leak Detector】配置项 SelfTest - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 网络流的C++代码实现与过程讲解

    网络流是一种非常重要的图论算法,它在许多实际问题中得到广泛应用。本文将介绍网络流算法的C++代码实现与过程讲解。 算法概述 网络流算法是通过将图中的边看作流量通道,将图的点看作流量的起点或终点,来求解图中的最大或最小流量的问题。它是一种非常重要的最优化算法,广泛应用于图论、运筹学、计算机网络等领域。 网络流算法有很多种,其中最著名的是Ford-Fulkers…

    C++ 2023年4月22日
    00
  • C++的对象和类

    一、问题引入 区分面向过程编程和面向对象编程的最大的特性就是 类,类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。 那么如何声明类、定义类、调用类? 以 C++ Primer Plus:中文版 (第六版) 的股票类举例说明。 二、解决过程 2-1 类抽象 股票类的抽象化 获得股票 增持股票 卖出股票 更新股票价格…

    C++ 2023年4月17日
    00
  • Linux/Ubuntu系统下使用VS Code配置C/C++开发环境

        在Ubuntu下,使用VS Code来编辑代码或进行开发非常方便,下面记录一下如何配置gcc/g++编译器和GDB调试工具。 准备工作: 1. 安装VS Code,过程略。 2. 为VS Code安装C/C++ Extension Pack 扩展组件,其他插件会附带安装 3. Ubuntu系统自带g++和gdb,查看一下 配置环境: VS Code …

    C++ 2023年5月7日
    00
  • 【Visual Leak Detector】源码调试 VLD 库

    说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 源码的调试。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. VLD 库源码调试步骤 1.1 设置为启动项目 1.2 设置调试程序 1.3 设置输出目录 1.4 拷贝 vld 依赖文件 1.5 加断点调试 2. 注意事项 1. VLD 库源码调试步骤 以 vld2.…

    C++ 2023年5月7日
    00
  • XMake学习笔记(1):Windows(MSYS2)下MinGW-w64环境搭建和XMake安装

    以前写的C++基本都是C with STL,大多是面向过程的算法题,或者比较小的项目,然后经常报各种编译错误(对编译原理不熟),经常把人搞到崩溃,搞不懂构建、链接之类的东西。 现在开始记录一下XMake的学习笔记,记录一些学习过程中踩的坑,在这篇文章,你将学习到Windows下利用MSYS2进行Mingw-w64环境搭建和XMake安装,并用Xmake构建一…

    C++ 2023年4月30日
    00
  • 聊一聊 Valgrind 监视非托管内存泄露和崩溃

    一:背景 1. 讲故事 只要是程序总会出现各种莫名其妙的问题,比如:非托管内存泄露,程序崩溃,在 Windows 平台上一般用微软自家的官方工具 App Verifier 就可以洞察,那问题出在 Linux 上怎么办呢?由于 Linux 崇尚自由,需要在各种牛鬼蛇神写的非官方开源软件中寻找一个比较靠谱的,比如本篇所说的 Valgrind。 个人感觉 Valg…

    C++ 2023年5月5日
    00
  • 【Visual Leak Detector】核心源码剖析(VLD 1.0)

    说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇对 VLD 1.0 源码做内存泄漏检测的思路进行剖析。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 源码获取 2. 源码文件概览 3. 源码剖析 3.1 注册自定义 AllocHook 函数 3.2 存储调用堆栈信息 3.3 生成泄漏检测报告 4. 其他问题 4.1 如何区分…

    C++ 2023年4月27日
    00
  • 2023团队天梯模拟赛 L2-3 智能护理中心统计 and L3-1 塔防游戏(23分)

    L2-3 智能护理中心统计 智能护理中心系统将辖下的护理点分属若干个大区,例如华东区、华北区等;每个大区又分若干个省来进行管理;省又分市,等等。我们将所有这些有管理或护理功能的单位称为“管理结点”。现在已知每位老人由唯一的一个管理结点负责,每个管理结点属于唯一的上级管理结点管辖。你需要实现一个功能,来统计任何一个管理结点所负责照看的老人的数量。 注意这是一个…

    C++ 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部