目录一 、经验排查二 、使用Visual Leak Detector for Visual c++2.1 Visual Leak Detector for Visual C++简介2
有经验的程序员会对程序中申请内存的地方进行排查,例如malloc或者new关键字的地方进行跟踪,一种情况是我们按照程序逻辑进行了申请和释放,要提防程序在发生异常时没有如我们所期望的那样进行内存释放,此时也应当防止内存泄漏。
检测大多数(如果不是全部)进程内内存泄漏类型,包括基于 COM 的泄漏和基于纯 Win32 堆的泄漏。
提供泄漏块的完整数据转储(以十六进制和 ASCII 格式)。
可定制的内存泄漏报告:可以保存到文件或发送到调试器,并且可以包含可变级别的详细信息。
其他用于 Visual C++ 的售后泄漏检测器已经可用。但大多数真正流行的,如 Purify 和 BoundsChecker,都非常昂贵。存在一些免费的替代方案,但它们通常太具有侵入性、限制性或不可靠。 Visual Leak Detector 是目前唯一可免费使用的 Visual C++ 内存泄漏检测器,它将上述所有专业级功能整齐地打包在一个易于使用的库中。
在自己的工程中引入vld.h文件,并在链接库中配置vld.lib库
设置当前工程为Debug模式,才能显示堆栈相关的调用信息
#pragma once
class three
{
public:
three();
~three();
};
#include "three.h"
three::three()
{
}
three::~three()
{
}
#include<stdlib.h>
#include<stdio.h>
#include <iOStream>
#include <vld.h>
#include "three.h"
using namespace std;
int main()
{
cout << "vld test begin" << endl;
int *one = new int[30];
char *two = new char[40];
three * tmp = new three();
return 0;
}
程序执行完之后会在终端显示内存泄漏的的个数,并同时会打印相关的内存泄漏的堆栈信息,当鼠标点击终端信息输出的位置时,同时会在上方代码指示哪一行出现内存泄漏。
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: C++之内存泄漏排查详解
本文链接: https://lsjlt.com/news/137689.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0