使用DebugDia定位解决内存泄漏

内存泄漏始终是c++程序员的一个痛点,也是必须解决的问题。

本文简单介绍使用DebugDia来定位内存泄漏,真的很强大,能定位到行/定位到调用堆栈。

而且DebugDia是微软提供的免费工具。它比WinDebug和 vs2015自带的内存分析工具都要更强大。


下载地址(使用bing 搜出来头一条就是):

https://www.microsoft.com/en-us/download/details.aspx?id=49924

win7旗舰版只有x64版本的才能用。


所使用的工具:
(1)DebugDia 2 Collection
(2)DebugDia 2 Analysis


步骤分为3步,如下:
(第一步)先使用DebugDia 2 Collection抓取.dump文件,最好是抓两个.dump,对比一段时间的内存泄漏‘

如附图1~4

使用DebugDia定位解决内存泄漏

使用DebugDia定位解决内存泄漏

使用DebugDia定位解决内存泄漏使用DebugDia定位解决内存泄漏


(第二步)再用DebugDia 2 Analysis,分析生成的.dump文件,会生成.mht文件,自动跳转到由ie explorer浏览器(需要低版本,譬如ie9)打开 

如附图5

使用DebugDia定位解决内存泄漏

(第三步)分析结果,非常详细
如附图6

使用DebugDia定位解决内存泄漏


更详细的文档 可以参考微软  Tess Ferrandez 的大作:
https://blogs.msdn.microsoft.com/tess/2010/01/14/debugging-native-memory-leaks-with-debug-diag-1-1/