【轉】_CrtSetBreakAlloc 內存泄漏

聲明:本內容轉載自 https://my.oschina.net/gp8wLHNUeKd2C/blog/110707函數

在使用VS開發過程當中,(今日)遇到內存泄漏的狀況。具體表現爲:spa

在輸出窗口中,顯示:.net

項目代碼翻了個遍都沒看出問題在哪。此時,可經過 _CrtSetBreakAlloc(); 接口,進行簡單的內存泄漏檢查。debug

具體使用方法:在 main 函數中,直接第一句前加上 _CrtSetBreakAlloc(12866); 而後以 debug 模式下運行。此時,vs會直接幫忙定位到具體發生內存泄漏的位置(注意:是以中斷的形式定位的)。code


下面是轉載博客的部分須要注意的地方的原文內容(方便查閱,故copy放於此):blog

或者 在頭文件添加以下代碼

// 在入口函數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安裝路徑下的任何文件。
相關文章
相關標籤/搜索