COR_GC_REFERENCE 结构
包含有关要进行垃圾回收的对象的信息。
语法
typedef struct _COR_GC_REFERENCE {
ICorDebugAppDomain *domain;
ICorDebugValue *location;
CorGCReferenceType type;
UINT64 extraData;
} COR_GC_REFERENCE;
成员
成员 | 说明 |
---|---|
domain |
指向句柄或对象所属的应用程序域的指针。 其值可以是 null 。 |
location |
与要被垃圾回收的对象相对应的 ICorDebugValue 或 ICorDebugReferenceValue 接口。 |
type |
一个 CorGCReferenceType 枚举值,该值指示根的来源。 有关详细信息,请参阅“备注”部分。 |
extraData |
要被垃圾回收的对象的其他相关数据。 这些信息取决于对象的源,如字段 type 所示。 有关详细信息,请参阅“备注”部分。 |
备注
type
字段是一个 CorGCReferenceType 枚举值,指示引用的来源。 特定的 COR_GC_REFERENCE
值可以反映以下任何一种托管对象:
来自所有托管堆栈 (
CorGCReferenceType.CorReferenceStack
) 的对象。 这包括托管代码中的实时引用以及公共语言运行时创建的对象。句柄表 (
CorGCReferenceType.CorHandle*
) 中的对象。 这包括模块中的强引用(HNDTYPE_STRONG
和HNDTYPE_REFCOUNT
)和静态变量。终结器队列 (
CorGCReferenceType.CorReferenceFinalizer
) 中的对象。 终结器队列对对象进行 root 操作,直到终结器运行。
extraData
字段包含其他数据,具体取决于引用的源(或类型)。 可能的值为:
DependentSource
. 如果type
是CorGCReferenceType.CorHandleStrongDependent
,则该字段将是一个对象,它在活动状态时,会对将在COR_GC_REFERENCE.Location
处进行垃圾回收的对象执行 root 操作。RefCount
. 如果type
是CorGCReferenceType.CorHandleStrongRefCount
,则该字段是句柄的引用计数。Size
. 如果type
是CorGCReferenceType.CorHandleStrongSizedByref
,则该字段是垃圾回收器为其计算对象根的对象树的最后大小。 注意,此计算不一定是最新的。
要求
平台:请参阅系统要求。
标头:CorDebug.idl、CorDebug.h
库:CorGuids.lib
.NET Framework 版本:自 4.5 起可用