【轉】_CrtSetBreakAlloc 內存泄漏
阿新 • • 發佈:2017-11-07
接口 發生 pan 定位 image 部分 方便 博客 clu
聲明:本內容轉載自 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 內存泄漏