Estrutura COR_GC_REFERENCE

Contém informações sobre um objeto que será coletado como lixo.

Sintaxe

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

Membros

Membro DESCRIÇÃO
domain Um ponteiro para o domínio do aplicativo ao qual o identificador ou objeto pertence. Seu valor pode ser null.
location Uma interface ICorDebugValue ou ICorDebugReferenceValue que corresponde ao objeto a ser coletado.
type Um valor de enumeração CorGCReferenceType que indica de onde veio a raiz. Para obter mais informações, consulte a seção Comentários.
extraData Dados adicionais sobre o objeto a ser coletado. Essas informações dependem da origem do objeto, conforme indicado pelo campo type. Para obter mais informações, consulte a seção Comentários.

Comentários

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

  • Objetos de todas as pilhas gerenciadas (CorGCReferenceType.CorReferenceStack). Isso inclui referências dinâmicas no código gerenciado, bem como objetos criados pelo Common Language Runtime.

  • Objetos da tabela de identificador (CorGCReferenceType.CorHandle*). Isso inclui referências fortes (HNDTYPE_STRONG e HNDTYPE_REFCOUNT) e variáveis estáticas em um módulo.

  • Objetos da fila do finalizador (CorGCReferenceType.CorReferenceFinalizer). O finalizador enfileira objetos raiz até que o finalizador tenha sido executado.

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

  • DependentSource. Se o type for CorGCReferenceType.CorHandleStrongDependent, esse campo será o objeto que, se estiver vivo, criará raízes no objeto a ser coletado em COR_GC_REFERENCE.Location.

  • RefCount. Se type for CorGCReferenceType.CorHandleStrongRefCount, esse campo será a contagem de referência do identificador.

  • Size. Se type for CorGCReferenceType.CorHandleStrongSizedByref, esse campo será o último tamanho da árvore de objetos para o qual o coletor de lixo calculou as raízes do objeto. Observe que esse cálculo não está necessariamente atualizado.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: disponíveis desde 4.5

Confira também