Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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