Sdílet prostřednictvím


ICorDebugSymbolProvider2::GetGenericDictionaryInfo – metoda

Načte mapu obecného slovníku.

Syntaxe

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

Parametry

ppMemoryBuffer
[out] Ukazatel na adresu objektu ICorDebugMemoryBuffer obsahující obecné mapování slovníku. Další informace naleznete v části Poznámky.

Poznámky

Poznámka

Tato metoda je k dispozici pouze pro .NET Native.

Mapa se skládá ze dvou oddílů nejvyšší úrovně:

  • Adresář obsahující relativní virtuální adresy (RVA) všech slovníků zahrnutých v této mapě.

  • Halda zarovnaná na bajty, která obsahuje informace o vytváření instancí objektů. Spustí se okamžitě po poslední položce adresáře.

Adresář

Každá položka v adresáři odkazuje na posun uvnitř haldy; to znamená, že se jedná o posun, který je relativní k začátku haldy. Hodnota jednotlivých položek nemusí být nutně jedinečná; je možné, že více položek adresáře odkazuje na stejný posun v haldě.

Adresářová část mapy obecného slovníku má následující strukturu:

  • První 4 bajty obsahují počet položek slovníku (to znamená počet relativních virtuálních adres ve slovníku). Tuto hodnotu budeme označovat jako N. Pokud je nastaven vysoký bit, jsou položky seřazeny podle relativní virtuální adresy ve vzestupném pořadí.

  • Následují položky adresáře N . Každá položka se skládá z 8 bajtů ve dvou 4 bajtových segmentech:

    • Bajty 0-3: RVA; relativní virtuální adresa slovníku.

    • Bajty 4-7: posun; posun vzhledem k začátku haldy.

Halda

Velikost haldy může čtenář datového proudu vypočítat odečtením délky datového proudu od velikosti adresáře + 4. Jinými slovy:

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

kde velikost adresáře je N * 8.

Formát každé položky informací o vytváření instancí na haldě je:

  • Délka této položky informací o vytváření instancí v bajtech v komprimovaném formátu metadat ECMA. Hodnota tyto informace o délce vylučuje.

  • Počet obecných typů instancí ( T) v komprimovaném formátu metadat ECMA.

  • Typy T , z nichž každý je reprezentovaný ve formátu podpisu typu ECMA.

Zahrnutí délky pro každý prvek haldy umožňuje jednoduché řazení oddílu adresáře, aniž by to mělo vliv na haldu.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: CorDebug.idl, CorDebug.h

Knihovny: CorGuids.lib

Verze rozhraní .NET Framework: K dispozici od verze 4.6, pouze .NET Native

Viz také