VS2015 定位内存泄露
时间:2019-02-19
本文章向大家介绍VS2015 定位内存泄露,主要包括VS2015 定位内存泄露使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如下代码,出现内存泄露,为检测这种情况,可以在最后一行添加_CrtDumpMemoryLeaks();
,点击调式按扭,不需要添加断点,程序正常退出,查看输出选项卡,即可。
#include <iostream>
using namespace std;
int main()
{
int* p = new int;
_CrtDumpMemoryLeaks();
return 0;
}
输出选项卡的内容:
Detected memory leaks!
Dumping objects ->
{148} normal block at 0x00F002B8, 4 bytes long.
Data: < > CD CD CD CD
Object dump complete.
如上所示,在申请第148块内存时,发生内存泄露,我们需要在此处添加断点,添下如下代码_CrtSetBreakAlloc(148);
,此函数参数148,即为内存泄露块标号。完整代码如下
int main()
{
_CrtSetBreakAlloc(148);
int* p = new int;
_CrtDumpMemoryLeaks();
return 0;
}
此时,不加任何断点,点击开始调式,那么就会断在内存泄露所在行。
注:如果出现找不到函数,可以添加头文件crtdbg.h.
关于全局变量:在阅读其他博客时,有博主说全局变量会在main函数之后释放,那么使用_CrtDumpMemoryLeaks();
也可以检测到内存泄露,我在VS2015中测试,不存在这种问题。可能是版本原因,我也不清楚。
关于定位到系统文件的问题,如STL原文件那么很可能是使用不规范造成内存泄露或库本生设计有问题。具体问题,具体分析,找大神解决吧。
- mongodb11天之屠龙宝刀(八)聚合函数与管道:sql与mongodb聚合函数对比
- Java基础-day04-基础题
- OpenCV亚像素角点cornerSubPixel()源代码分析
- mongodb11天之屠龙宝刀(十) 备份 还原 导出 导入::CSV,JSON,BOSN,解决中文乱码
- 【Go 语言社区】 golang 算法课程 第一季 第2节 洗牌算法
- 一条update语句的优化探索(r9笔记第80天)
- OpenCV角点检测源代码分析(Harris和ShiTomasi角点)
- Java基础-day03-代码题
- mongodb11天之屠龙宝刀(九)js函数入门:MongoDB基于js的数据类型修改
- Go语言社区 APP --问答模块数据存储流程及代码
- Java基础-day09-重构随机点名器
- OpenCV3.4两种立体匹配算法效果对比
- 文件操作常用函数
- Java基础-day09-对象;类;封装 学生管理系统
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用Markdown画流程图
- HBase NotServingRegionException
- Flink SQL 写入 Hive表的性能问题
- 文件系统索引extent 和 bitmap区别
- MySQL的Bugs
- 对复制实施主键约束
- MySQL如何管理客户端的连接?
- 鸿蒙 Ability 讲解(页面生命周期、后台服务、数据访问)
- MySQL如何管理客户端连接?线程池篇
- 让python装饰器不再晦涩难懂
- Android开发3年,九月份面试12家大厂跳槽成功,我有一些面试经验想分享给你们
- MySQL的防火墙功能
- Java中线程池的参数有几个?
- MySQL企业版备份工具MEB
- python生成器函数的应用场景举例---为copy过程添加进度条显示