Udostępnij za pośrednictwem


ICorDebugSymbolProvider2::GetGenericDictionaryInfo — Metoda

Pobiera ogólną mapę słownika.

Składnia

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

Parametry

ppMemoryBuffer
[out] Wskaźnik do adresu obiektu ICorDebugMemoryBuffer zawierającego mapę słownika ogólnego. Zobacz sekcję Spostrzeżenia, aby uzyskać więcej informacji.

Uwagi

Uwaga

Ta metoda jest dostępna tylko w przypadku .NET Native.

Mapa składa się z dwóch sekcji najwyższego poziomu:

  • Katalog zawierający względne adresy wirtualne (RVA) wszystkich słowników zawartych w tej mapie.

  • Stertę wyrównaną bajtem zawierającą informacje o utworzeniu wystąpienia obiektu. Rozpoczyna się natychmiast po ostatnim wpisie katalogu.

Katalog

Każdy wpis w katalogu odnosi się do przesunięcia wewnątrz sterty; oznacza to, że jest to przesunięcie, które jest względne względem początku sterty. Wartość poszczególnych wpisów nie musi być unikatowa; istnieje możliwość, aby wiele wpisów katalogu wskazywało to samo przesunięcie w stercie.

Część katalogu mapy słownika ogólnego ma następującą strukturę:

  • Pierwsze 4 bajty zawierają liczbę wpisów słownika (czyli liczbę względnych adresów wirtualnych w słowniku). Odwołujemy się do tej wartości jako N. Jeśli ustawiono duży bit, wpisy są sortowane według względnego adresu wirtualnego w kolejności rosnącej.

  • Poniżej są następujące pozycje katalogu N . Każdy wpis składa się z 8 bajtów w dwóch segmentach 4 bajtów:

    • Bajty 0–3: RVA; względny adres wirtualny słownika.

    • Bajty 4–7: Przesunięcie; przesunięcie względem początku sterty.

Stertę

Rozmiar sterty można obliczyć przez czytnik strumienia, odejmując długość strumienia od rozmiaru katalogu + 4. Innymi słowy:

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

gdzie rozmiar katalogu to N * 8.

Format każdego elementu informacji o wystąpieniach na stercie to:

  • Długość tego elementu informacji o wystąpieniach w bajtach w skompresowanym formacie metadanych ECMA. Wartość wyklucza te informacje o długości.

  • Liczba typów wystąpień ogólnych lub T w skompresowanym formacie metadanych ECMA.

  • Typy T , każdy reprezentowany w formacie sygnatury typu ECMA.

Włączenie długości każdego elementu stertowego umożliwia proste sortowanie sekcji katalogu bez wpływu na stertę.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorDebug.idl, CorDebug.h

Biblioteki: CorGuids.lib

wersje .NET Framework: dostępne tylko od wersji 4.6 .NET Native

Zobacz też