Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Получает карту из смещения общего промежуточного языка (CIL) на собственные смещения для кода, содержащегося в версии JIT-recompiled указанной функции.
Синтаксис
HRESULT GetILToNativeMapping2(
[in] FunctionID functionId,
[in] ReJITID reJitId,
[in] ULONG32 cMap,
[out] ULONG32 *pcMap,
[out, size_is(cMap), length_is(*pcMap)]
COR_DEBUG_IL_TO_NATIVE_MAP map[]);
Параметры
functionId [in] Идентификатор функции, содержащей код.
pReJitId [in] Удостоверение функции JIT-recompiled. Удостоверение должно быть равно нулю в .NET Framework 4.5.
cMap [in] Максимальный размер массива map .
pcMap [out] Общее количество доступных COR_DEBUG_IL_TO_NATIVE_MAP структур.
map [out] Массив COR_DEBUG_IL_TO_NATIVE_MAP структур, каждый из которых задает смещения.
GetILToNativeMapping2 После возврата map метода будет содержать некоторые или все COR_DEBUG_IL_TO_NATIVE_MAP структуры.
Замечания
GetILToNativeMapping2 аналогичен методу ICorProfilerInfo::GetILToNativeMapping , за исключением того, что он позволит профилировщику указать идентификатор перекомпилированного функции в будущих выпусках.
Замечание
Метод ICorProfilerFunctionControl::SetILInstrumentedCodeMap не реализован в .NET Framework 4.5, поэтому функции, которые были перекомпилированы JIT-recompiled, не могут иметь собственное сопоставление IL-to-native, которое отличается от первоначально скомпилированной функции. Таким образом, GetILToNativeMapping2 нельзя вызывать с помощью ненулевого JIT-перекомпилированного идентификатора в .NET Framework 4.5.
Метод GetILToNativeMapping2 возвращает массив COR_DEBUG_IL_TO_NATIVE_MAP структур. Чтобы передать, что определенные диапазоны собственных инструкций соответствуют специальным областям кода (например, прологу), запись в массиве может иметь значение ilOffset значения перечисления CorDebugIlToNativeMappingTypes .
После GetILToNativeMapping2 возврата необходимо убедиться, что map буфер был достаточно большим, чтобы содержать все COR_DEBUG_IL_TO_NATIVE_MAP структуры. Для этого сравните значение cMap параметра со значением pcMap параметра.
pcMap Если значение, умноженное на размер COR_DEBUG_IL_TO_NATIVE_MAP структуры, большеcMap, выделяется более крупный map буфер, обновляется cMap с новым, большим размером и снова вызываетсяGetILToNativeMapping2.
Кроме того, можно сначала вызвать GetILToNativeMapping2 буфер нулевой длины map , чтобы получить правильный размер буфера. Затем можно задать размер буфера значением, возвращенным и снова вызываемым pcMapGetILToNativeMapping2 .
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
Версии .NET Framework: Доступно с версии 4.5