Freigeben über


ICorDebugSymbolProvider2::GetGenericDictionaryInfo-Methode

Ruft eine generische Wörterbuchzuordnung ab.

Syntax

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

Parameter

ppMemoryBuffer
[out] Ein Zeiger auf die Adresse eines ICorDebugMemoryBuffer-Objekts, das die generische Wörterbuchzuordnung enthält. Weitere Informationen finden Sie im Abschnitt Hinweise.

Bemerkungen

Hinweis

Diese Methode ist nur mit .NET Native verfügbar.

Die Zuordnung besteht aus zwei Abschnitten auf oberster Ebene:

  • Ein Verzeichnis mit den relativen virtuellen Adressen (RVA) aller Wörterbücher, die in dieser Zuordnung enthalten sind.

  • Ein byteausgerichteter Heap, der Informationen zur Objektinstanziierung enthält. Er beginnt unmittelbar nach dem letzten Verzeichniseintrag.

Das Verzeichnis

Jeder Eintrag im Verzeichnis verweist auf einen Offset innerhalb des Heaps. Dieser Offset ist relativ zum Beginn des Heaps. Der Wert der einzelnen Einträge ist nicht notwendigerweise eindeutig. Es ist möglich, dass mehrere Verzeichniseinträge auf den gleichen Offset im Heap zeigen.

Der Verzeichnisteil der generischen Wörterbuchzuordnung weist die folgende Struktur auf:

  • Die ersten 4 Bytes enthalten die Anzahl der Wörterbucheinträge (d. h. die Anzahl der relativen virtuellen Adressen im Wörterbuch). Dieser Wert wird als N bezeichnet. Wenn das höchstwertige Bit festgelegt ist, werden die Einträge anhand der relativen virtuellen Adresse in aufsteigender Reihenfolge sortiert.

  • Darauf folgenden die N-Verzeichniseinträge. Jeder Eintrag besteht aus 8 Bytes in zwei 4-Byte-Segmenten:

    • Bytes 0 - 3: RVA - die relative virtuelle Adresse des Wörterbuchs.

    • Bytes 4 - 7: Offset - ein Offset relativ zum Beginn des Heaps.

Der Heap

Die Größe des Heaps kann von einem StreamReader durch Subtrahieren der Länge des Datenstroms von der Verzeichnisgröße + 4 berechnet werden. Anders gesagt:

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

Dabei ist die Verzeichnisgröße N * 8.

Das folgende Format wird für jedes Instanziierungsinformationselement auf dem Heap verwendet:

  • Die Länge dieses Instanziierungsinformationselements in Bytes im komprimierten ECMA-Metadatenformat. Der Wert schließt diese Längeninformationen aus.

  • Die Anzahl der generischen Instanziierungstypen oder T im komprimierten ECMA-Metadatenformat.

  • T-Typen, die jeweils im ECMA-Typsignaturformat dargestellt werden.

Die Berücksichtigung der Länge für jedes Heapelement ermöglicht eine einfache Sortierung des Verzeichnisabschnitts ohne Auswirkungen auf den Heap.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorDebug.idl, CorDebug.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit Version 4.6 verfügbar, nur .NET Native

Weitere Informationen