VMMAP定位内存泄露

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

猜你喜欢

转载自blog.csdn.net/CAir2/article/details/79729348