1.启动VMMAP,配置运行程序pdb位置:Options->Configure Symbols
2.通过VMMAP,启动应用程序:File->Select Process
3.分析应用程序堆数据
注意:如果内存泄露随着时间推移,肯定相同的内存会越来越多,此时我们可以通过调用堆栈分析,如下
4.如果通过堆栈还是比较难以定位,或者VMMAP崩溃了,那么只能结合VS的内存窗口数据一起查看数据了,然后根据数据内容分析代码(这可能就要求对代码熟悉程度非常高了)大概位置,进行问题解决。案例分析:
VS断点之后,查看当前VMMAP指向的内存数据:
所以我们在代码表接口打断点并且分析数据,如下:
至此内存泄露定位成功。