共用方式為


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

請參閱

參考

ICorProfilerInfo 介面

其他資源

分析介面

分析 (Unmanaged API 參考)