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报告效果:

 

posted @ 2018-09-27 17:58  那一剑的風情  阅读(553)  评论(0)    收藏  举报