Visual Leak Detector 2.5.1 (VLD)下载、安装与使用

news2024/11/25 11:01:59

目录

1 软件介绍

2 下载与安装

2.1 工具下载地址

2.2 工具安装

3 配置与使用

3.1 配置环境变量

3.2 配置vs

3.3 VLD的配置

4 测试代码与报告生成


1 软件介绍

Visual Leak Detector 2.5.1 (VLD)是一个小巧内存检测工具,是为Visual C++用户设计的。其特色为:

  1. 简单易用,只需要在需要进行内存泄漏检测的的主程序代码中加入#include "VLD.h“,并将编译好的Lib文件放入默认的库目录,然后在Visual C++用Debug模式编译运行程序,程序运行结束后便可在Visual C++的输出窗口看到内存泄露检测结果。
  2. 通过宏定义控制测试行为,如报告的详略等。
  3. 支持Windows X64。
  4. 检测报告很直观,甚至能显示泄漏内存的内容

2 下载与安装

2.1 工具下载地址

Visual Leak Detector 官网下载地址:Visual Leak Detector | Enhanced Memory Leak Detection for Visual C++,点击 Download Installer 绿色按钮可下载工具的安装程序 vld-2.5.1-setup.exe。

也可去 Git 仓库 releases 界面 下载安装程序 vld-2.5.1-setup.exe

还可以使用国内的网络资源下载:百度网盘-vld-2.5.1-setup.exe。

2.2 工具安装

点击next

继续点击next

勾选三个,然后点击next

确认自己的设置,确认一下,需要修改则点击Back返回修改,否则点击install进行安装。

注意:安装前需要关闭Visual Studio

安装完成后的目录结构:

3 配置与使用

3.1 配置环境变量

找到Visual Leak Detector的安装目录,复制路径,把路径配置到环境变量中。Vld支持32位和64位,以防万一我们都配置上。

3.2 配置vs

打开vs,我这里使用的是vs2017,根据自己版本进行配置。

选择主工程,右键打开属性界面,找到“配置属性-VC++目录-包含目录/引用目录

配置Visual Leak Detector的lib和include目录,如图所示。

找到“配置属性-C/C++-预处理器-预处理器定义“,点击”编辑“进入编辑框,输入【_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING】,点击确定保存,如图所示

VLD默认在程序结束后生成报告,默认生成得报告显示在调试窗口和输出窗口中,在“配置属性-链接器-调试-生成调试信息”下拉选项框中选择【生成经过优化以共享和发布的调试信息(/DEBUG:FULL)】,如图所示

https://img-blog.csdnimg.cn/img_convert/eabf7a681fc2e755abf72d35958a2a6c.png

3.3 VLD的配置

使用的时候需要把以下几个选中的文件复制到工程中,如图所示

3.2说到可以在调试窗口和输出窗口显示调试信息,但也可以让调试信息输出到文件中,看的时候更加清晰明了。

上图中的vld.ini便可以进行配置。

ReportTo默认为debugger,意思是输出到调试窗口,改为file就输出到文件中了,通过ReportFile配置文件生成得位置,如图所示

  • 在对于debug下文件中添加#include "vld.h"#pragma comment(lib, "vld.lib")便可使用VLD了
  • 如果是release版本,还需要添加在#include "vld.h"前加一条#define VLD_FORCE_ENABLE,否则将不能进行内存泄漏的检测

4 测试代码与报告生成

可以用以下代码进行测试:

#include <iostream>
#include <string>
#include <Windows.h>
#include "vld.h"

#pragma comment(lib, "vld.lib")

using namespace std;

int main()
{
    cout << "start" << endl;
    static int *a = new int;
    int *arr = new int[10];
    int aaa = 10;
    //delete a;
    cout << "end" << endl;

    return 0;
}

编译完成点击F5启动进程,如图所示

查看报告,可以看到有几处内存泄露,并且定位到内存泄露点的代码行,如图所示:

进入代码中查看,可以看到这两行没有被释放

手动释放一下再测试,可以看到已经没有内存泄露的地方了:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1189088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

收银系统怎么选,网页版还是安装版好?

现代商业环境下&#xff0c;收银系统已经成为商家不可或缺的工具之一。今天商人宝与您分享收银系统网页版比安装版好在哪几个地方&#xff0c;这样大家选择收银机的时候就省心省事多了&#xff0c;多几个知识也少踩几个坑&#xff0c;大家收藏一下这个文章&#xff0c;不然关闭…

挑战100天 AI In LeetCode Day08(热题+面试经典150题)

挑战100天 AI In LeetCode Day08&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-102.1 题目2.2 题解 三、面试经典 150 题-103.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&…

没有项目管理经验,可以参加PMP考试么?

PMP报考人员是需要有项目管理经验&#xff0c;而所说的具有多少小时的项目管理经验&#xff0c;指的是项目相关经验&#xff0c;比如参与项目研发、测试、交付、运维、技术支持、售前等&#xff0c;这个项目经验也是一个国际上的广义概念&#xff0c;万事皆成项目&#xff0c;你…

二分详解(整数二分、浮点二分,附加例题)

一、二分 1.二分性质 二分的本质&#xff1a;二分可以将边界点二分出来&#xff08;即一部分满足这个条件&#xff0c;一部分不满足这个条件&#xff09; 二分的时候也一定有解 2.整数二分 1.寻找红色边界点x int l0,rn-1; while(l<r) {int mid(lr1)/2;if(check(mid))l…

十七、W5100S/W5500+RP2040树莓派Pico<HTTP Server网页显示>

文章目录 1 前言2 简介2 .1 什么是HTTP&#xff1f;2.2 HTTP的优点2.3 HTTP工作原理2.4 HTTP应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 HTTP是互联网上应用…

大自然的拥抱:燃木壁炉营造的原始温馨

人们都喜欢坐在壁炉旁&#xff0c;享受熊熊炉火的温暖和舒适。壁炉不仅提供取暖功能&#xff0c;还营造出室内的温馨氛围。而在现代&#xff0c;有多种类型的壁炉可供选择&#xff0c;其中燃木壁炉是一种备受欢迎的选择。 相比之下&#xff0c;煤炭传统供暖燃料是有限的非可再生…

Oracle递归查询树形数据

实际生活有很多树形结构的数据&#xff0c;比如公司分为多个部门、部门下分为多个组&#xff0c;组下分为多个员工&#xff1b;省市县的归属&#xff1b;页面菜单栏等等。 如果想查询某个节点的父节点或者子节点&#xff0c;一般通过表自身连接完成&#xff0c;但如果该节点的子…

每日一题 2258. 逃离火灾(手撕困难!!!)

火会扩散&#xff0c;但是我们可以看作火不会扩散到已经着火的格子&#xff0c;这样我们就可以记录每一个为草地的格子的着火时间在代码中&#xff0c;因为数字 2 已经表示墙了&#xff0c;所以我们把当时间为 0 时着火的格子在 gird 中的值设为 3&#xff0c;时间为 1 时着火的…

YOLOv8教程系列:五、关闭数据增强

YOLOv8教程系列&#xff1a;五、关闭数据增强 在一些特殊情况下&#xff0c;特别是在计算机视觉任务中&#xff0c;如目标检测&#xff0c;图像的颜色扰动可能会对算法的性能和稳定性产生重要影响。在这些情况下&#xff0c;我们可能需要采取一些措施来关闭部分或全部的数据增…

招商银行余额截图生成器在线,虚拟金额中国农业邮政建设工商,易语言开源例子

其实用易语言的画板写一个图片生成器真的非常简单&#xff0c;我这里都没用任何第三方的支持库&#xff0c;当然也可以用EXUI画板自绘功能&#xff0c;但是用这个默认的就足够了&#xff0c;而且画出来的图非常高清&#xff0c;软件框架里面比较模糊因为缩放的原因&#xff0c;…

调试 Mahony 滤波算法的思考 10

调试 Mahony 滤波算法的思考 1. 说在前面的2.Mahony滤波算法的核心思想3. 易懂的理解 Mahony 滤波算法的过程4. 其他的一些思考5. 民间 9轴评估板 1. 说在前面的 之前调试基于QMI8658 6轴姿态解算的时候&#xff0c;我对Mahony滤波的认识还比较浅薄。初次的学习和代码的移植让…

EMNLP2023 | 让模型学会将提示插入到合适的中间层

深度学习自然语言处理 原创作者&#xff1a;cola 现有的提示微调方法基本是人工选择提示层&#xff0c;而人工选择将提示插入到哪些层次并非一定合理&#xff0c;这导致了很大程度上限制提示微调发挥潜能。我们的模型(SPT)可以让模型自己学习应该在哪些中间层插入提示&#xff…

强化您的应用安全,从app加固开始

强化您的应用安全&#xff0c;从app加固开始 目录 强化您的应用安全&#xff0c;从app加固开始 摘要 引言 1. 加密和数据保护 2. 代码混淆 3. 防止反编译 4. 安全测试 5. 更新和补丁 6. 权限控制 7. 输入验证和输出过滤 8. 日志记录和监控 9. 安全设计和架构 10.…

【Python】AppUI自动化—appium自动化开发环境部署、APP测试案例(17)上

文章目录 一.appium简介1.什么是appium2.appium 的工作原理3.APP类型4.APP页面布局 二,appium开发环境部署&#xff08;python环境&#xff09;1.下载安装环境1.1.下载安装所需环境1.2.Appium-desktop&#xff08; Appium-Server-GUI &#xff09;配置1.3.Appium-Inspector 配置…

【Delphi】Android 开发HTTP请求出错解决方案

目录 一、故障现象 二、原因及解决方案 一、故障现象 在android内建的WebBrowser浏览器中通过http访问一个网站&#xff08;注意不是https&#xff09;&#xff0c;出现如下错误提示&#xff1a; 在使用ntfy的时候&#xff0c;访问http定义的服务器地址&#xff08;注意不是…

通过postgis空间库导入sql格式的矢量数据到arcgis中

1、在postgis中创建数据库 命名为test3 2、创建空间扩展 3、导入sql矢量文件 进入psql.exe目录中 进入dos命令框中 输入命令,其中host输入自己的主机ip,database为自己的数据库名称,数据路径修改为自己电脑上的路径,注意反斜杠 psql

github官网打不开或访问慢的解决办法

对国内程序员而言&#xff0c;github官网经常面临打不开或访问慢的问题&#xff0c;今天教你一招非常简单且好用的小技巧&#xff0c;轻松访问github官网。 1、github官网打不开的原因 首选我们说下github官网打不开的原因到底是什么。细心的同学会发现&#xff0c;github偶尔…

SDL2 简单介绍以及Windows开发环境搭建

1.简介 SDL&#xff08;Simple DirectMedia Layer&#xff09;是一个跨平台的多媒体开发库&#xff0c;使用C语言写成&#xff0c;用于实现音频、图形、输入以及窗口功能的处理。它提供了一个简单、易用的API&#xff0c;可以帮助开发者快速构建跨平台的多媒体应用程序。 SDL…

国外访问学者/博士后留学人员反诈骗指南

访问学者/博士后/联合培养博士人员出国后&#xff0c;对当地环境及政策不熟悉&#xff0c;需要提高防范意识&#xff0c;为此&#xff0c;知识人网小编特整理这篇反诈骗指南&#xff0c;提醒留学人员防微杜渐、未雨绸缪。 近日&#xff0c;多国使馆发布相关提醒&#xff1a;不法…

kali linux系统选用gnome桌面安装完成后无法调节屏幕亮度踩坑过程( 2301_77564090)

方法一&#xff1a; 在终端通过xrandr命令查看当前显示屏名字 然后输入命令调节屏幕亮度&#xff0c;我调节的是原先的70%&#xff0c; xrandr --output eDP --brightness 0.7 方法一能成功调节&#xff0c;但每次开机屏幕亮度都自动回调到100%&#xff0c;每次都要手动打开终…