c++内存泄露(三):定位和解决内存泄露
来源:互联网 发布:淘宝订单号大小怎么看 编辑:程序博客网 时间:2024/05/16 11:03
如果编写的c++程序出现内存泄露了,不要慌忙,你要相信任何错误都是人为造成的,只要是人为的,你一定能找到错误所在,只不过是时间的问题而已。在面对内存泄露,如果程序不是特别长的话,你可以使用人工校验,着重查看new和delete的匹配调用。
如果经过一番折腾还未确定程序的错误所在,首先应该明白程序在不停地循环调用的是那部分程序,然后对这部分程序做特殊的处理,逐行验证,然后确定错误所在。
如果还是找不到,那么我们只能借助工具,进行错误泄露的定位了。
首先,介绍的是VLD(Visual Leak Detector),这是一个免费的、开源的、强大的内存泄露检测系统,可以安装当作VS的一个插件。
http://vld.codeplex.com/
在安装完成后,在工程中指定其include header和library file的路径,然后添加头文件
#include <vld.h>
这样就可以使用了。
如例子:
#include "stdafx.h"#include <iostream>#include <vld.h>#include <string>#include <windows.h>using namespace std;int main(){while (true){char *test = new char[100];Sleep(1000);}cin.get();return 0;}
双击1位置的错误列表,即可定位到错误的所在
修改vld.h :ReportFile和ReportTo可以将日志打印到目标文件内。
如果你的程序还存在内存泄露,那你不妨试一下将一些内存申请过程使用智能指针进行实现。
c++内存泄露(一):理解内存泄漏及内存泄漏常见情况
c++内存泄露(二):使用性能监视器进行内存泄露的确认
阅读全文
0 0
- c++内存泄露(三):定位和解决内存泄露
- 内存泄露定位(转载)
- VC++内存泄露定位
- 内存泄露定位
- VC内存泄露定位
- WinDbg定位内存泄露
- windbg定位内存泄露
- VC++内存泄露定位
- WinDbg定位内存泄露
- 内存泄露定位
- 内存泄露定位
- Objective C内存管理进阶(三): 调试内存泄露
- Objective C内存管理进阶(三): 调试内存泄露
- Objective C内存管理进阶(三): 调试内存泄露
- 如何定位和处理内存泄露
- Android内存泄露 (三)
- 解决CimageList内存泄露
- 解决android内存泄露
- MySQL优化
- 从经典部署模型迁移到 Azure Resource Manager 部署模型的过程中出现的常见错误
- ios中的pch的文件的使用
- Spring中扩展 PropertyPlaceholderConfigurer处理加密属性文件
- 设计模式学习(C++实现)6--桥接模式
- c++内存泄露(三):定位和解决内存泄露
- 散列表双链表处理冲突删除操作O(1)
- 带滚动监听的scrollview 可以用来控制actionbar的显隐
- 伪元素选择器
- 显式和隐式Intent来启动活动
- path_planner--RRT
- 状态机的c语言编程
- 笔记:windows环境下云风pbc嵌入到quick-cocos项目。
- JS把用户输入的大写字母转成小写