您的位置:首页 > 其它

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

2016-04-07 16:23 309 查看
 
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(必须在程序启动后启动leakdiag,leakdiag不会实时刷新,否则会找不到相应程序),找到对应的程序:

 


然后选择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,正在学习中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: