다음을 통해 공유


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

참고 항목

참조

ICorProfilerInfo 인터페이스

기타 리소스

프로파일링 인터페이스

프로파일링(관리되지 않는 API 참조)