ICorProfilerInfo4::GetCodeInfo3 메서드

지정된 함수의 JIT 다시 컴파일된 버전과 연결된 네이티브 코드의 범위를 가져옵니다.

구문

HRESULT GetCodeInfo3(  
    [in]  FunctionID functionID,  
    [in]  ReJITID reJitId,  
    [in]  ULONG32 cCodeInfos,  
    [out] ULONG32 *pcCodeInfos,  
    [out, size_is(cCodeInfos), length_is(*pcCodeInfos)]  
    COR_PRF_CODE_INFO codeInfos[]);  

매개 변수

functionID
[in] 네이티브 코드가 연결된 함수의 ID입니다.

reJitId
[in] JIT 다시 컴파일된 함수의 ID입니다.

cCodeInfos
[in] codeInfos 배열의 크기입니다.

pcCodeInfos
[out] COR_PRF_CODE_INFO 구조체의 총수에 대한 포인터입니다.

codeInfos
[out] 호출자가 제공한 버퍼입니다. 메서드가 반환된 후에는 각각 네이티브 코드 블록을 설명하는 COR_PRF_CODE_INFO 구조체의 배열을 포함합니다.

설명

GetCodeInfo3 메서드는 지정된 IP 주소를 포함하는 함수의 JIT 다시 컴파일된 ID를 가져온다는 점을 제외하고 GetCodeInfo2와 비슷합니다.

참고

GetCodeInfo3은 가비지 컬렉션을 트리거할 수 있는 반면 GetCodeInfo2는 트리거하지 않습니다. 자세한 내용은 CORPROF_E_UNSUPPORTED_CALL_SEQUENCE HRESULT를 참조하세요.

범위는 CIL(Common Intermediate Language) 오프셋의 오름차순으로 정렬됩니다.

GetCodeInfo3가 반환된 후 codeInfos 버퍼가 모든 COR_PRF_CODE_INFO 구조체를 포함하기에 충분히 큰지 확인해야 합니다. 이렇게 하려면 cCodeInfos 값을 cchName 매개 변수의 값과 비교합니다. cCodeInfosCOR_PRF_CODE_INFO 구조체의 크기로 나눈 값이 pcCodeInfos보다 작으면 더 큰 codeInfos 버퍼를 할당하고 cCodeInfos를 더 큰 새 크기로 업데이트한 다음, GetCodeInfo3를 다시 호출합니다.

또는 길이가 0인 codeInfos 버퍼로 GetCodeInfo3를 먼저 호출하여 올바른 버퍼 크기를 구합니다. 그런 다음, codeInfos 버퍼 크기를 pcCodeInfos에서 반환된 값에 COR_PRF_CODE_INFO 구조체의 크기를 곱한 값으로 설정하고 GetCodeInfo3를 다시 호출합니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4.5부터 사용 가능

참고 항목