COR_GC_REFERENCE结构

包含有关要进行垃圾回收的对象的信息。

Syntax

typedef struct _COR_GC_REFERENCE {
    ICorDebugAppDomain *domain;
    ICorDebugValue *location;
    CorGCReferenceType type;
    UINT64 extraData;
} COR_GC_REFERENCE;

Members

成员 Description
domain 指向句柄或对象所属的应用程序域的指针。 其值可以是 null
location 与要垃圾回收的对象对应的 ICorDebugValue 或 ICorDebugReferenceValue 接口。
type 一个 CorGCReferenceType 枚举值,该值指示根来自何处。 有关详细信息,请参阅“备注”部分。
extraData 有关要进行垃圾回收的对象的其他数据。 此信息取决于对象的源,如字段指示 type 。 有关详细信息,请参阅“备注”部分。

注解

type 字段是 一个 CorGCReferenceType 枚举值,指示引用来自何处。 特定 COR_GC_REFERENCE 值可以反映以下任一类型的托管对象:

  • 来自所有托管堆栈的对象(CorGCReferenceType.CorReferenceStack)。 这包括托管代码中的实时引用,以及公共语言运行时创建的对象。
  • 句柄表 (CorGCReferenceType.CorHandle*) 中的对象。 这包括模块中的强引用(HNDTYPE_STRONGHNDTYPE_REFCOUNT)和静态变量。
  • 终结器队列中的对象(CorGCReferenceType.CorReferenceFinalizer)。 终结器队列根对象,直到终结器运行。

字段 extraData 包含额外数据,具体取决于引用的源(或类型)。 可能的值为:

  • DependentSource。 如果为 typeCorGCReferenceType.CorHandleStrongDependent,则此字段是对象,如果该对象处于活动状态,则会在该 COR_GC_REFERENCE.Location对象处进行垃圾回收。
  • RefCount。 如果为 CorGCReferenceType.CorHandleStrongRefCounttype则此字段是句柄的引用计数。
  • Size。 如果为 typeCorGCReferenceType.CorHandleStrongSizedByref,则此字段是垃圾回收器为其计算对象根的对象树的最后一个大小。 请注意,此计算不一定是最新的。

要求

平台: 请参阅 .NET 支持的作系统

页眉: CorDebug.idl、CorDebug.h

图书馆: CorGuids.lib

.NET 版本: 自 .NET Framework 4.5 起可用