Udostępnij przez


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. Aby uzyskać więcej informacji, zobacz sekcję Uwagi.

Uwagi

Uwaga / Notatka

Ta metoda jest dostępna tylko w przypadku platformy .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.

  • Sterta wyrównana bajtowo, która zawiera 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ę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). Będziemy odwoływać 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.

  • N wpisów katalogu następuje. Każdy wpis składa się z 8 bajtów w dwóch segmentach 4-bajtowych:

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

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

Sterta

Rozmiar sterty można obliczyć przez czytnik strumienia, odejmując długość strumienia z 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 utworzeniu wystąpienia na stercie to:

  • Długość tego elementu informacji o utworzeniu wystąpienia w bajtach w skompresowanym formacie metadanych ECMA. Wartość nie obejmuje tych informacji 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 sterta umożliwia proste sortowanie sekcji katalogu bez wpływu na stertę.

Requirements

Platformy: Zobacz Obsługiwane systemy operacyjne platformy .NET.

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

Biblioteka: CorGuids.lib

Wersje platformy .NET: Dostępne od programu .NET Framework 4.6

Zobacz także