码迷,mamicode.com
首页 > 编程语言 > 详细

C++程序内存泄漏检查

时间:2014-07-18 18:23:33      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   文件   

一、在windows平台上面:
以前我都是用purify,因为没有正版的,很是麻烦。

后来我开始用windows自带的umdh,也很好用:http://support.microsoft.com/kb/268343/en-us
摘要一下步骤如下:

1、准备工作:

1 gflags -i <application name> +ust

注:得先把gflags和umdh的路径加入到Path中,默认为:C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64(我用的是Win64的系统,x86的自己改下)。

2、启动需要检查的程序,并获得其进程号(假设为124);
3、获取heap dump:

umdh -p:124 -f:heapdump_1.log

跑了一段时间之后,再dump一次:

umdh -p:124 -f:heapdump_2.log

4、比较两次生成的dump:

UMDH heapdump_1.log heapdump_2.log > cmp12.txt

然后检查cmp12.txt即可。检查该文件需要对程序的了解和一些检查内存泄漏的经验。有的时候会有误报,总的来说抓大放小,检查那些持续性的泄漏,而不是类似于static对象的一次性的泄漏。这些原则同样适用于valgrind。

 

二、在linux平台上面:
用Valgrind: http://valgrind.org/
这是个相当好的工具。linux平台开发真是相当的方便呢。

valgrind --track-origins=yes --leak-check=full --log-file=valgrind.log --error-limit=no -v <executable path> &

C++程序内存泄漏检查,布布扣,bubuko.com

C++程序内存泄漏检查

标签:style   blog   http   color   os   文件   

原文地址:http://www.cnblogs.com/ezhang/p/3853389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!