【问题标题】:How to get detailed diagnostics from CRT Memory Manager in Windows?如何从 Windows 中的 CRT 内存管理器获取详细诊断信息?
【发布时间】:2012-04-30 18:52:01
【问题描述】:

出于调试和诊断内存碎片的目的,我希望能够查询内存管理器(为 C++ 应用程序提供的默认管理器)以获取某些信息,例如非连续空闲块的数量和每个人的大小。

我设想了一种从头到尾扫描或迭代整个堆并查看所有细节的方法。如果我在这里看到一块非空闲内存,那么它有多大(以字节为单位)?接下来,我可能会遇到一个空闲块,那个有多大?

我尝试用第三方的东西替换我们的内存管理器,但到目前为止,我们的代码库太复杂了,即使我尝试了各种技巧,我也经常崩溃。因此,我必须依赖一些 CRT 堆诊断功能来执行此操作,或者依赖一些可以为我执行此操作的工具。

感谢您的帮助(以及 C++ 中的代码示例)!

【问题讨论】:

    标签: c++ windows memory diagnostics msvcrt


    【解决方案1】:

    从事物的声音来看,您正在寻找_heapwalk。链接页面包含一个小演示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      • 1970-01-01
      • 2016-01-17
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多