ICorProfilerInfo::GetILToNativeMapping 메서드
지정된 함수에 들어 있는 코드에 대해 MSIL(Microsoft Intermediate Language) 오프셋에서 네이티브 오프셋으로의 매핑을 가져옵니다.
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 매개 변수의 값을 비교합니다. COR_DEBUG_IL_TO_NATIVE_MAP 구조체의 크기로 곱한 pcMap 값이 cMap 보다 크면 더 큰 map 버퍼를 할당하고 보다 큰 새 버퍼로 cMap을 업데이트한 다음 GetILToNativeMapping을 다시 호출합니다.
또는 길이가 0인 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