2011-05-10 74 views
1

我目前正在研究一个应用程序为C++应用程序使用大量专用内存的问题。它看起来很像是基于转储分析的提交和保留内存。如何判断提交内容和保留内存中的内容?

我使用Windbg。有没有什么办法可以看出在提交和保留内存中有什么?我已经缩小到一个特定的堆。

我的理论是它没有被释放。我无法进行调试,只能继续下去。

任何建议都会有帮助。

回答

0

!address -Filter应该能够提供该信息。以下是不同的过滤器选项。

MEM_COMMIT: - 这是目前 致力于由 目标使用所有的内存。为此内存分配了物理存储 ,物理内存 或页面文件中。

MEM_RESERVE: - 保留供目标未来使用的所有内存 。 此存储器没有物理存储器分配给 。

MEM_FREE: - 目标的虚拟地址空间中的所有可用内存。 该存储器包含所有未提交或保留的存储器 。 此过滤器值与 RegionUsageFree相同。

+0

谢谢,所以我得到了这个不错的小输出。我该怎么处理它? – Andy12 2011-05-10 13:40:06

+0

此博客应该帮助你http://blogs.msdn.com/b/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx – Rockstart 2012-09-22 16:41:49