声明:本内容转载自 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安装路径下的任何文件。