Partilhar via


Estrutura COR_GC_REFERENCE

Contém informações sobre um objeto que deve ser recolhido pela memória.

Syntax

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

Membros

Membro Description
domain Um ponteiro para o domínio da aplicação ao qual pertence o identificador ou objeto. O respetivo valor pode ser null.
location Uma interface ICorDebugValue ou ICorDebugReferenceValue que corresponde ao objeto a ser recolhido pela memória.
type Um valor de enumeração CorGCReferenceType que indica de onde veio a raiz. Para obter mais informações, consulte a secção Observações.
extraData Dados adicionais sobre o objeto a recolher da memória. Estas informações dependem da origem do objeto, conforme indicado pelo type campo. Para obter mais informações, consulte a secção Observações.

Observações

O type campo é um valor de enumeração CorGCReferenceType que indica de onde veio a referência. Um valor específico COR_GC_REFERENCE pode refletir qualquer um dos seguintes tipos de objetos geridos:

  • Objetos de todas as pilhas geridas (CorGCReferenceType.CorReferenceStack). Isto inclui referências em direto no código gerido, bem como objetos criados pelo runtime de linguagem comum.

  • Objetos da tabela de identificadores (CorGCReferenceType.CorHandle*). Isto inclui referências fortes (HNDTYPE_STRONG e HNDTYPE_REFCOUNT) e variáveis estáticas num módulo.

  • Objetos da fila de finalizador (CorGCReferenceType.CorReferenceFinalizer). A fila de finalizador tem raízes até que o finalizador seja executado.

O extraData campo contém dados adicionais consoante a origem (ou tipo) da referência. Os valores possíveis são:

  • DependentSource. Se for typeCorGCReferenceType.CorHandleStrongDependent, este campo é o objeto que, se estiver vivo, enraiza o objeto a ser recolhido pela memória em COR_GC_REFERENCE.Location.

  • RefCount. Se for typeCorGCReferenceType.CorHandleStrongRefCount, este campo é a contagem de referência do identificador.

  • Size. Se for typeCorGCReferenceType.CorHandleStrongSizedByref, este campo tem o último tamanho da árvore de objetos para a qual o recoletor de lixo calculou as raízes do objeto. Tenha em atenção que este cálculo não está necessariamente atualizado.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

.NET Framework Versões: Disponível desde a versão 4.5

Ver também