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