ICorProfilerInfo4::GetILToNativeMapping2 메서드
지정된 함수의 JIT 다시 컴파일된 버전에 포함된 코드의 네이티브 오프셋에 대한 CIL(공용 중간 언어) 오프셋에서 네이티브 오프셋으로의 맵을 가져옵니다.
구문
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] 코드를 포함하는 함수의 ID입니다.
pReJitId
[in] JIT 다시 컴파일된 함수의 ID입니다. ID는 .NET Framework 4.5에서 0이어야 합니다.
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
구조체가 일부 또는 모두 포함됩니다.
설명
이후 릴리스에서 프로파일러가 다시 컴파일된 함수의 ID를 지정할 수 있도록 허용한다는 점을 제외하고 GetILToNativeMapping2
는 ICorProfilerInfo::GetILToNativeMapping 메서드와 비슷합니다.
참고 항목
ICorProfilerFunctionControl::SetILInstrumentedCodeMap 메서드는 .NET Framework 4.5에서 구현되지 않으므로 JIT 다시 컴파일된 함수가 원래 컴파일된 함수와 다른 IL-to-native 매핑을 사용할 수 없습니다. 따라서 .NET Framework 4.5에서는 0이 아닌 JIT 다시 컴파일된 ID를 사용하여 GetILToNativeMapping2
를 호출할 수 없습니다.
GetILToNativeMapping2
메서드는 COR_DEBUG_IL_TO_NATIVE_MAP
구조체의 배열을 반환합니다. 특정 범위의 네이티브 명령이 코드의 특수 영역(예: 프롤로그)에 해당함을 전달하기 위해 배열의 항목에 대한 ilOffset
필드가 CorDebugIlToNativeMappingTypes 열거형의 값으로 설정될 수 있습니다.
GetILToNativeMapping2
가 반환된 후 map
버퍼가 모든 COR_DEBUG_IL_TO_NATIVE_MAP
구조체를 포함하기에 충분히 큰지 확인해야 합니다. 이렇게 하려면 cMap
값을 pcMap
매개 변수의 값과 비교합니다. COR_DEBUG_IL_TO_NATIVE_MAP
구조체의 크기를 곱한 pcMap
값이 cMap
보다 크면 더 큰 map
버퍼를 할당하고 cMap
를 더 큰 새 크기로 업데이트한 다음 GetILToNativeMapping2
를 다시 호출합니다.
또는 길이가 0인 map
버퍼로 GetILToNativeMapping2
를 먼저 호출하여 올바른 버퍼 크기를 구합니다. 그런 다음 버퍼 크기를 pcMap
에 반환된 값으로 설정하고 GetILToNativeMapping2
을 다시 호출합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: CorProf.idl, CorProf.h
라이브러리: CorGuids.lib
.NET Framework 버전: 4.5부터 사용 가능
참고 항목
.NET