最近刚升级到了VS2017进行项目开发,在准备做内存泄露调查的时候遇到了之前常使用的工具无法正常工作的问题,分享下
1、LeakDiag vesion:1.25.28.2201
会出现以下问题:
a.无法识别到要检测的程序
b.设置PDB路径之后,无法启动检测
c.据说不支持x64,未验证
2、Tencent TMM内存检测工具
通过启动程序后无法识别到对应程序,也没有办法打印出对应的泄露信息
该工具在windows7+vs2013的环境下可以正常使用
3、Visual Leak Detector2.5.1(vld)
官方提供的说明只支持VS2008-2015
若使用附带的dbghelp.dll,运行结束后会异常崩溃。
若不使用附带的dbghelp.dll,则不会出现崩溃,不过泄露的信息没有出现对应泄露的函数信息
4、VS2017的Debug下的诊断工具
简单的程序可以实现记录快照和对比查找泄露位置,但是复杂的程序快照记录没问题,不过对比快照的时候会出现卡住的情况
5、神器:VS2017性能探查器(ALT+F2或者菜单调试->性能探查器)
可以做快照对比,能支持Debug和Release,使用后感觉应该是目前我用过最方便直观的内存泄露检测工具
如图:
过程中可以随时保存内存快照,然后结束可以进行分享,如果程序复杂申请的内存数量较多,会比较慢,不过不至于卡住没任何相应。而且这个支持Debug和Release
生成快照
快照之间的内存差异对比
可以看到泄露函数的行数