ICorProfilerInfo::GetILToNativeMapping 方法
針對指定的函式中所包含的程式碼,取得從 Microsoft Intermediate Language (MSIL) 位移到原生位移的對應。
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] 包含程式碼的函式 ID。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。
如需有關這兩種方法的詳細資訊,請參閱由呼叫端配置的緩衝區。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorProf.idl、CorProf.h
**程式庫:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0