VC++内存泄漏检测方法(6):介绍deleaker和heob两款软件
我的这个系列的文章竟然可以写到第6篇。(#^.^#)
最近又从网上了解到了两款软件,可以检测内存泄漏。重点介绍heob这款,因为它不仅免费,而且还和Qt Creator配合得比较好。
1、商业软件deleaker
https://www.deleaker.com/
C++ 内存泄漏检测
Deleaker 是所有主要 IDE 的扩展,也是用于内存泄漏检测的独立应用程序 - 到目前为止,内存、GDI 和句柄。
即使是最稳定的 Windows 应用程序也无法避免资源泄漏。 在所有错误和问题中,内存泄漏检测往往是最困难的,尤其是在 GDI 对象和菜单中发现时。 经验法则是,越早发现和处理错误,它们的成本就越低。
虽然不乏帮助追踪内存泄漏的工具和附加组件,但很少有工具和附加组件能够追踪可能破坏 Windows 性能的 GDI 资源泄漏。 Deleaker 是少数能够做到这一点的工具之一,并且对应用程序性能的影响最小。
Deleaker 是一个内存泄漏检测器,可与所有主要 IDE 集成:Visual Studio、Delphi、C++ Builder 和 Qt Creator。
2、免费开源软件heob
https://github.com/ssbssa/heob
它和qt creator有较好的集成度,配合起来使用比较容易。工程项目不论是主程序还是动态库,都能捕获到内存泄漏。
qt的官方文档也有提到这个软件。
https://doc.qt.io/qtcreator/creator-heob.html
(1)先下载heob-4.0.7z并解压exe
https://github.com/ssbssa/heob/releases
(2)打开QtCreator,主菜单-分析-选中Heob
选定Heob path,其它选项保持默认值不变
(3)点击按钮OK,程序会运行,然后手动关闭程序,会自动生成测试报告leaks.xml文件或者直接在qtc的Memcheck窗口查看
Memcheck窗口会把存在内存泄漏的地方列出来,能看到详细的堆栈。
(4)Heob建议在debug模式下运行。