【发布时间】:2012-04-30 18:52:01
【问题描述】:
出于调试和诊断内存碎片的目的,我希望能够查询内存管理器(为 C++ 应用程序提供的默认管理器)以获取某些信息,例如非连续空闲块的数量和每个人的大小。
我设想了一种从头到尾扫描或迭代整个堆并查看所有细节的方法。如果我在这里看到一块非空闲内存,那么它有多大(以字节为单位)?接下来,我可能会遇到一个空闲块,那个有多大?
我尝试用第三方的东西替换我们的内存管理器,但到目前为止,我们的代码库太复杂了,即使我尝试了各种技巧,我也经常崩溃。因此,我必须依赖一些 CRT 堆诊断功能来执行此操作,或者依赖一些可以为我执行此操作的工具。
感谢您的帮助(以及 C++ 中的代码示例)!
【问题讨论】:
标签: c++ windows memory diagnostics msvcrt