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