windows 下检测内存泄漏
方法一:使用 _CrtDumpMemoryLeaks
#include <iostream>
#include <windows.h>
#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif
using namespace std;
struct StockInfo
{
int iMarket;
string sCode;
StockInfo()
: iMarket(0)
{
}
};
int main()
{
getchar();
cout << "begin" << endl;
StockInfo *pStockInfo = new StockInfo;
pStockInfo->iMarket = 1;
pStockInfo->sCode = "000001";
cout << "Market:" << pStockInfo->iMarket << "|" << "Code:" << pStockInfo->sCode.c_str() << endl;
//delete pStockInfo;
cout << "end" << endl;
_CrtDumpMemoryLeaks();
getchar();
return 0;
}

main.cpp 第34行有内存泄漏
方法二:使用 DebugDiag
参见官方文档:https://msdn.microsoft.com/en-us/library/ff420662.aspx
生成dump文件:

默认下一步
如果是查内存泄漏:


生成dump文件之后用 DebugDiag Analysis分析


report报告效果:



浙公网安备 33010602011771号