使用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 2 Analysis,分析生成的.dump文件,会生成.mht文件,自动跳转到由ie explorer浏览器(需要低版本,譬如ie9)打开
如附图5
(第三步)分析结果,非常详细
如附图6
更详细的文档 可以参考微软 Tess Ferrandez 的大作:
https://blogs.msdn.microsoft.com/tess/2010/01/14/debugging-native-memory-leaks-with-debug-diag-1-1/