Partager via


ICorDebugSymbolProvider2 ::GetGenericDictionaryInfo, méthode

Récupère une carte de dictionnaire générique.

Syntaxe

HRESULT GetGenericDictionaryInfo(
   [out] ICorDebugMemoryBuffer** ppMemoryBuffer
);

Paramètres

ppMemoryBuffer
[out] Pointeur vers l’adresse d’un objet ICorDebugMemoryBuffer contenant la carte de dictionnaire générique. Pour plus d’informations, consultez la section Remarques.

Remarques

Note

Cette méthode est disponible uniquement avec .NET Native.

La carte se compose de deux sections de niveau supérieur :

  • Répertoire contenant les adresses virtuelles relatives (RVA) de tous les dictionnaires inclus dans cette carte.

  • Segment de mémoire aligné sur les octets qui contient des informations d’instanciation d’objet. Elle démarre immédiatement après la dernière entrée de répertoire.

Répertoire

Chaque entrée dans le répertoire fait référence à un décalage à l’intérieur du tas ; autrement dit, il s’agit d’un décalage relatif au début du tas. La valeur des entrées individuelles n’est pas nécessairement unique ; il est possible que plusieurs entrées de répertoire pointent vers le même décalage dans le tas.

La partie répertoire de la carte de dictionnaire générique a la structure suivante :

  • Les 4 premiers octets contiennent le nombre d’entrées de dictionnaire (autrement dit, le nombre d’adresses virtuelles relatives dans le dictionnaire). Nous allons faire référence à cette valeur en tant que N. Si le bit élevé est défini, les entrées sont triées par adresse virtuelle relative dans l’ordre croissant.

  • Les entrées de répertoire N suivent. Chaque entrée se compose de 8 octets, en deux segments de 4 octets :

    • Octets 0-3 : RVA ; adresse virtuelle relative du dictionnaire.

    • Octets 4-7 : Décalage ; décalage relatif au début du tas.

Le tas

La taille du tas peut être calculée par un lecteur de flux en soustrayant la longueur du flux de la taille du répertoire + 4. En d’autres termes :

Heap Size = Stream.Length – (Directory Size + 4)

où la taille du répertoire est N * 8.

Le format de chaque élément d’informations d’instanciation sur le tas est le suivant :

  • Longueur de cet élément d’informations d’instanciation en octets au format de métadonnées ECMA compressé. La valeur exclut ces informations de longueur.

  • Nombre de types d’instanciation génériques, ou T, au format de métadonnées ECMA compressés.

  • Types T , chacun représenté au format de signature de type ECMA.

L’inclusion de la longueur pour chaque élément de tas permet un tri simple de la section de répertoire sans affecter le tas.

Spécifications

Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.

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

Bibliothèque: CorGuids.lib

Versions de .NET : Disponible depuis .NET Framework 4.6

Voir aussi