Поделиться через


Структура COR_GC_REFERENCE

Содержит сведения об объекте, который должен собирать мусор.

Синтаксис

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). Сюда входят динамические ссылки в управляемом коде, а также объекты, созданные средой CLR.
  • Объекты из таблицы дескрипторов (CorGCReferenceType.CorHandle*). Сюда входят надежные ссылки (HNDTYPE_STRONG и) и HNDTYPE_REFCOUNTстатические переменные в модуле.
  • Объекты из очереди завершения (CorGCReferenceType.CorReferenceFinalizer). Объекты очереди завершения до тех пор, пока не будет запущен метод завершения.

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

  • DependentSource. Если это typeCorGCReferenceType.CorHandleStrongDependentполе , это объект, который, если он жив, корни объекта для сбора мусора.COR_GC_REFERENCE.Location
  • RefCount. Если это typeCorGCReferenceType.CorHandleStrongRefCountполе , это число ссылок дескриптора.
  • Size. type CorGCReferenceType.CorHandleStrongSizedByrefВ противном случае это поле является последним размером дерева объектов, для которого сборщик мусора вычисляет корни объекта. Обратите внимание, что это вычисление не обязательно актуально.

Требования

Платформ: См. сведения о поддерживаемых операционных системах .NET.

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

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

Версии .NET: Доступно с версии .NET Framework 4.5