我目前正在研究一个应用程序正在为C ++应用程序使用大量私有内存的问题。根据转储分析,看起来很多是在提交和保留内存中。
我使用Windbg。有什么方法可以看出提交和保留记忆中的确切含义是什么?我把它缩小到一个特定的堆。
我的理论是它没有被释放。我无法调试,我只有转储继续。
任何建议都会有所帮助。
答案 0 :(得分:0)
!address -Filter
应该能够提供这些信息。以下是不同的过滤选项。
MEM_COMMIT: - 所有内存 目前承诺使用 目标。物理存储已经 在物理上分配给这个记忆 内存或页面文件。
MEM_RESERVE: - 所有内存 保留供目标将来使用。 没有分配物理存储空间 这段记忆。
MEM_FREE: - 所有可用内存 目标的虚拟地址空间。 这个内存包括所有内存 尚未承诺或保留。 此过滤器值与 RegionUsageFree。