LeakDiag的使用和形成的LOG文件的分析方法

 

LeakDiag是微软一款检测memory leak的工具

 

安装默认是在c:\leakdiag下,完成后界面如下:

 

写如下的测试程序进行测试

#include "stdafx.h"

#include <windows.h>

 

 

int _tmain(int argc, _TCHAR* argv[])

{

    for (int i = 0 ; i < 10 ; i++)

    {

        char * pChar = new char[1000] ;

        Sleep(5000) ;

    }

    return 0;

}

 

运行程序后(程序必须在调试状态下启动,否则报错),启动LeakDiag(必须在程序启动后启动leakdiagleakdiag不会实时刷新,否则会找不到相应程序),找到对应的程序:

 

然后选择Windows Heap Allocator来跟踪heap的使用,按start开始,等一会按log,然后再stop9 R! E* m: P G# w3 V3 ~7 |
会在c:\leakdiag\Logs下面生成一个log

打开log,关键部分如下:


可以看到num = 6 的那行标注了内存泄露的源头,在mem_test.cpp 中的第12行(生成文件前,需要设置程序相应PDB位置,[Tools]-[Option]-Symbol search path):

 

注意:PDB路径不能包含中文字符

 

 

另外还有个log分析工具LDParser,正在学习中

你可能感兴趣的:(内存,leak,泄漏)