Partager via


COR_GC_REFERENCE, structure

Contient des informations sur un objet qui doit faire l'objet d'une récupération de mémoire.

Syntaxe

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

Membres

Membre Description
domain Pointeur vers le domaine d’application auquel appartient le handle ou l’objet. Sa valeur peut être null.
location Interface ICorDebugValue ou ICorDebugReferenceValue qui correspond à l’objet à nettoyer de la mémoire.
type Valeur d’énumération CorGCReferenceType qui indique l’origine de la racine. Pour plus d'informations, consultez la section Notes.
extraData Données supplémentaires sur l’objet à nettoyer de la mémoire. Ces informations dépendent de la source de l’objet, comme indiqué par le champ type. Pour plus d'informations, consultez la section Notes.

Notes

Le champ type est une valeur d’énumération CorGCReferenceType qui indique l’origine de la référence. Une valeur COR_GC_REFERENCE particulière peut refléter l’un des types d’objets managés suivants :

  • Objets de toutes les piles managées (CorGCReferenceType.CorReferenceStack). Cela inclut des références directes dans le code managé ainsi que des objets créés par le Common Language Runtime.

  • Objets de la table de handles (CorGCReferenceType.CorHandle*). Cela inclut des références fortes (HNDTYPE_STRONG et HNDTYPE_REFCOUNT) et des variables statiques dans un module.

  • Objets de la file d’attente du finaliseur (CorGCReferenceType.CorReferenceFinalizer). La file d’attente du finaliseur racine les objets jusqu’à ce que le finaliseur ait été exécuté.

Le champ extraData contient des données supplémentaires en fonction de la source (ou du type) de la référence. Les valeurs possibles sont les suivantes :

  • DependentSource. Si le type est CorGCReferenceType.CorHandleStrongDependent, ce champ est l’objet qui, s’il existe, racine l’objet à nettoyer de la mémoire à l’adresse COR_GC_REFERENCE.Location.

  • RefCount. Si le type est CorGCReferenceType.CorHandleStrongRefCount, ce champ est le nombre de références du handle.

  • Size. Si le type est CorGCReferenceType.CorHandleStrongSizedByref, ce champ est la dernière taille de l’arborescence d’objets pour laquelle le récupérateur de mémoire a calculé les racines d’objets. Notez que ce calcul n’est pas nécessairement à jour.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : CorDebug.idl, CorDebug.h

Bibliothèque : CorGuids.lib

Versions de .NET Framework : disponible depuis la version 4.5

Voir aussi