Структура 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). Сюда входят динамические ссылки в управляемом коде, а также объекты, созданные средой CLR.

  • Объекты из таблицы дескрипторов (CorGCReferenceType.CorHandle*). Сюда входят надежные ссылки (HNDTYPE_STRONG и HNDTYPE_REFCOUNT) и статические переменные в модуле.

  • Объекты из очереди метода завершения (CorGCReferenceType.CorReferenceFinalizer). Метод завершения очереди корневых объектов до тех пор, пока не будет запущен метод завершения.

Поле extraData содержит дополнительные данные в зависимости от источника (или типа) ссылки. Возможны следующие значения:

  • DependentSource. type Если имеет значение CorGCReferenceType.CorHandleStrongDependent, это поле является объектом, который, если он активен, корнем объекта для сборки мусора в COR_GC_REFERENCE.Location.

  • RefCount. type Если имеет значение CorGCReferenceType.CorHandleStrongRefCount, это поле является числом ссылок дескриптора.

  • Size. type Если имеет значение CorGCReferenceType.CorHandleStrongSizedByref, это поле является последним размером дерева объектов, для которого сборщик мусора вычислил корни объекта. Обратите внимание, что это вычисление не обязательно является актуальным.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 4.5

См. также раздел