ICorProfilerInfo::GetILToNativeMapping 方法
從通用中繼語言 (CIL) 位移取得對應到指定函式中包含的程式代碼原生位移。
語法
HRESULT GetILToNativeMapping(
[in] FunctionID functionId,
[in] ULONG32 cMap,
[out] ULONG32 *pcMap,
[out, size_is(cMap), length_is(*pcMap)]
COR_DEBUG_IL_TO_NATIVE_MAP map[]);
參數
functionId
[in]包含程式代碼之函式的識別碼。
cMap
[in]數位大小 map
上限。
pcMap
[out]可用COR_DEBUG_IL_TO_NATIVE_MAP結構的總數。
map
[out]結構的陣列 COR_DEBUG_IL_TO_NATIVE_MAP
,每個都會指定位移。 GetILToNativeMapping
方法傳回之後,map
將會包含部分或所有 COR_DEBUG_IL_TO_NATIVE_MAP
結構。
備註
GetILToNativeMapping
方法會傳回 COR_DEBUG_IL_TO_NATIVE_MAP
結構的陣列。 為了傳達特定範圍的原生指令對應至特殊程式代碼區域(例如,初構),陣列中的專案可以將其ilOffset
欄位設定為 CorDebugIlToNativeMappingTypes 列舉的值。
GetILToNativeMapping
傳回之後,您必須確認 map
緩衝區夠大,可以包含所有 COR_DEBUG_IL_TO_NATIVE_MAP
結構。 若要這樣做,請比較 cMap
的值與 pcMap
參數的值。 如果 pcMap
值乘以 COR_DEBUG_IL_TO_NATIVE_MAP
結構的大小之後大於 cMap
,請配置較大的 map
緩衝區,以新的較大大小更新 cMap
,然後重新呼叫 GetILToNativeMapping
。
或者,您也可以先使用長度為零的 map
緩衝區來呼叫 GetILToNativeMapping
,以取得正確的緩衝區大小。 接著您就可以將緩衝區大小設定為 pcMap
中傳回的值,並再次呼叫 GetILToNativeMapping
。
需求
平台:請參閱系統需求。
標頭: CorProf.idl、CorProf.h
程式庫:CorGuids.lib
.NET Framework 版本: 自 2.0 起提供