擷取一般字典對應。
語法
HRESULT GetGenericDictionaryInfo(
[out] ICorDebugMemoryBuffer** ppMemoryBuffer
);
參數
ppMemoryBuffer
[出]包含泛型字典對應之 ICorDebugMemoryBuffer 物件位址的指標。 如需詳細資訊,請參閱備註一節。
備註
備註
此方法僅適用於 .NET 原生。
地圖由兩個頂層區段組成:
目錄
目錄中的每個專案都會參考堆積內的位移量;也就是說,它是相對於堆積開頭的偏移。 個別項目的值不一定是唯一的;多個目錄項目可能會指向堆中的相同位移。
泛型字典對映的目錄部分具有下列結構:
前 4 個位元組包含字典項目的數目 (即字典中的相對虛擬位址數目)。 我們將此值稱為 N。如果設定了高位,則條目將按相對虛擬地址遞增排序。
N 個目錄 項目接著。 每一個項目都包含 8 個位元組,分為兩個 4 位元組區段:
位元組 0-3:RVA;字典的相對虛擬位址。
位元組 4-7:偏移量;相對於堆積開頭的位移。
堆
資料堆的大小可以由資料流程讀取器計算,方法是從目錄大小 + 4 中減去資料流程的長度。 換句話說:
Heap Size = Stream.Length – (Directory Size + 4)
其中目錄大小為 N * 8。
資料堆上每一個實例化資訊項目的格式為:
此實例化資訊項目的長度,以壓縮 ECMA 中繼資料格式為單位,以位元組為單位。 此值會排除此長度資訊。
壓縮 ECMA meta 資料格式中的泛型實例化類型 ( T) 數目。
T 型別,每個類型都以 ECMA 型別簽章格式表示。
包含每個堆元素的長度可讓您簡單排序目錄區段,而不會影響堆積。
需求
平台: 請參閱 .NET 支援的作業系統。
標題: CorDebug.idl、CorDebug.h
圖書館: CorGuids.lib
.NET 版本: 從 .NET Framework 4.6 開始提供