Compartilhar via


Estrutura de COR_GC_REFERENCE

Contém informações sobre um objeto que deve ser coletado por lixo.

Sintaxe

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

Members

Membro Description
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 por lixo.
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 por lixo. Essas informações dependem da origem do objeto, conforme indicado pelo type campo. Para obter mais informações, consulte a seção Comentários.

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 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 identificadores (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). A fila do finalizador raiz objetos até que o finalizador tenha sido executado.

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

  • DependentSource. Se estiver typeCorGCReferenceType.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 estiver typeCorGCReferenceType.CorHandleStrongRefCount, esse campo será a contagem de referência do identificador.
  • Size. Se for typeCorGCReferenceType.CorHandleStrongSizedByref, esse campo será o último tamanho da árvore de objetos para a qual o coletor de lixo calculou as raízes do objeto. Observe que esse cálculo não está necessariamente atualizado.

Requirements

Plataformas: Consulte sistemas operacionais com suporte do .NET.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET: Disponível desde o .NET Framework 4.5