ICorDebugSymbolProvider2::GetGenericDictionaryInfo 方法
擷取泛型字典對應。
語法
HRESULT GetGenericDictionaryInfo(
[out] ICorDebugMemoryBuffer** ppMemoryBuffer
);
參數
ppMemoryBuffer
[out] ICorDebugMemoryBuffer 物件位址的指標,其中包含泛型字典對應。 如需詳細資訊,請參閱<備註>一節。
備註
注意
這個方法僅適用於 .NET Native。
對應是由兩個最上層區段所組成:
目錄
目錄中的每個項目是指堆積中的位移,也就是相對於堆積開頭的位移。 個別項目的值不一定是唯一的,可能會有多個目錄項目指向堆積中的同一個位移。
泛型字典對應的目錄部分具有下列結構:
前 4 個位元組包含字典項目數 (也就是字典中的相對虛擬位址數目)。 我們會將此值視為 N。如果設定高位元,項目會依相對虛擬位址的遞增順序排序。
後面接著 N 個目錄項目。 每個項目是由兩個 4 位元組區段中的 8 個位元組所組成:
位元組 0-3:RVA;字典的相對虛擬位址。
位元組 4-7:位移;相對於堆積開頭的位移。
堆積
堆積的大小可透過資料流讀取器來計算,計算方式是將目錄大小減去資料流長度,再加 4。 換句話說:
Heap Size = Stream.Length – (Directory Size + 4)
其中目錄大小為 N * 8
。
堆積上每個具現化資訊項目的格式為:
這個具現化資訊項目的長度 (以位元組為單位),採用壓縮的 ECMA 中繼資料格式。 該值不包括這個長度資訊。
泛型具現化類型的數目 (或 T),採用壓縮的 ECMA 中繼資料格式。
T 類型,每個類型都會以 ECMA 類型簽章格式表示。
包含每個堆積項目的長度可簡化目錄區段的排序,而不影響堆積。
規格需求
平台:請參閱系統需求。
標頭:CorDebug.idl、CorDebug.h
程式庫:CorGuids.lib
.NET Framework版本:自 4.6 起提供,.NET Native
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應