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]包含代码的函数的 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
结构的数组。 为了表达一定范围的本机指令对应于特殊的代码区域(例如,prolog),数组中的条目可以将其 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 起可用