ICorDebugProcess5::EnumerateHeapRegions 方法
获取针对托管堆的内存范围的枚举器。
语法
HRESULT EnumerateHeapRegions(
[out] ICorDebugHeapSegmentEnum **ppRegions
);
参数
ppRegions
[out]指向 ICorDebugHeapSegmentEnum 接口对象的地址的指针,该对象是托管堆中对象所在内存范围的枚举器。
注解
在调用 ICorDebugProcess5::EnumerateHeapRegions
方法之前,应调用 ICorDebugProcess5::GetGCHeapInformation 方法并检查返回的 COR_HEAPINFO 对象的 areGCStructuresValid
字段的值,以确保当前状态下的垃圾回收堆是可枚举的。 此外,如果在创建内存区域之前在进程的生存期中过早地附加,ICorDebugProcess5::EnumerateHeapRegions
方法会返回 E_FAIL
。
此方法保证枚举可能包含托管对象的所有内存区域,但不保证托管对象实际驻留在这些区域中。 ICorDebugHeapSegmentEnum 集合对象可能包含空内存区域或预留的内存区域。
ICorDebugHeapSegmentEnum 接口对象是从允许你枚举 COR_SEGMENT 对象的 ICorDebugEnum 接口派生的标准枚举器。 每个 COR_SEGMENT 对象提供有关特定段的内存范围以及该段中对象的生成的信息。
要求
平台:请参阅系统要求。
标头:CorDebug.idl、CorDebug.h
库:CorGuids.lib
.NET Framework 版本:自 4.5 起可用