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
매개 변수의 값과 비교합니다. cCodeInfos
를 COR_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부터 사용 가능
참고 항목
.NET