首页 > 其他 > 详细

【转】_CrtSetBreakAlloc 内存泄漏

时间:2017-11-07 20:22:01      阅读:253      评论:0      收藏:0      [点我收藏+]

声明:本内容转载自 https://my.oschina.net/gp8wLHNUeKd2C/blog/110707

在使用VS开发过程中,(今日)遇到内存泄漏的情况。具体表现为:

在输出窗口中,显示:

技术分享

项目代码翻了个遍都没看出问题在哪。此时,可通过 _CrtSetBreakAlloc(); 接口,进行简单的内存泄漏检查。

具体使用方法:在 main 函数中,直接第一句前加上 _CrtSetBreakAlloc(12866); 然后以 debug 模式下运行。此时,vs会直接帮忙定位到具体发生内存泄漏的位置(注意:是以中断的形式定位的)。


下面是转载博客的部分需要注意的地方的原文内容(方便查阅,故copy放于此):

或者 在头文件添加如下代码

// 在入口函数cpp中添加以下定义和头文件   
#define CRTDBG_MAP_ALLOC   
#include <stdlib.h>   
#include <crtdbg.h>   



如果用VisualLeakDetector无法找到内存溢出代码对应的位置的时候,要首先查看如下操作

1.当前程序路径是否包含中文,VisualLeakDetector对中文不能支持

2.打算查看的DLL是否包含了"#include <vld.h>",每个打算查看的DLL都要在原DLL的代码中添加"#include <vld.h>"

3.不能在当前程序路径中包含VisualLeakDetector安装路径下的任何文件。

 

【转】_CrtSetBreakAlloc 内存泄漏

原文:http://www.cnblogs.com/tongy0/p/7800711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!