_CrtSetBreakAlloc 内存泄漏

Posted jacc.kim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了_CrtSetBreakAlloc 内存泄漏相关的知识,希望对你有一定的参考价值。

声明:本内容转载自 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 内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 _NSCFNumber 的 iOS 内存泄漏?

Linux下内存泄漏工具

GMock泄漏内存[重复]

FragmentStatePagerAdapter 内存泄漏(带有 viewpager 的嵌套片段)

Windows 下的内存泄漏检测方法

Lua表内存泄漏?