다음을 통해 공유


ICorProfilerCallback4::ReJITError 메서드

JIT(Just-In-Time) 컴파일러가 다시 컴파일 프로세스에서 오류를 발견했음을 프로파일러에 알립니다.

구문

HRESULT ReJITError(  
    [in] ModuleID    moduleId,  
    [in] mdMethodDef methodId,  
    [in] FunctionID  functionId,  
    [in] HRESULT     hrStatus);  

매개 변수

moduleID
[in] 실패한 재컴파일 시도가 이루어진 ModuleID입니다.

methodId
[in] 실패한 재컴파일 시도가 이루어진 메서드의 MethodDef입니다.

functionId
[in] 재컴파일 중이거나 재컴파일로 표시된 함수 인스턴스입니다. 인스턴스화 단위가 아니라 메서드 단위로 실패가 발생한 경우 이 값은 NULL일 수 있습니다(예: 프로파일러가 다시 컴파일할 메서드에 대해 잘못된 메타데이터 토큰을 지정한 경우).

hrStatus
[in] 실패의 특성을 나타내는 HRESULT입니다. 값 목록은 상태 HRESULTS 섹션을 참조하세요.

Return Value

이 콜백의 반환 값은 무시됩니다.

상태 HRESULTS

상태 배열 HRESULT 설명
E_INVALIDARG moduleID 또는 methodDef 토큰은 NULL입니다.
CORPROF_E_DATAINCOMPLETE 모듈은 아직 완전히 로드되지 않았거나 언로드되는 중입니다.
CORPROF_E_MODULE_IS_DYNAMIC 지정된 모듈은 동적으로 생성되었으므로(예: Reflection.Emit) 이 메서드에서 지원되지 않습니다.
CORPROF_E_FUNCTION_IS_COLLECTIBLE 메서드는 수집 가능한 어셈블리로 인스턴스화되므로 다시 컴파일할 수 없습니다. 리플렉션이 아닌 컨텍스트(예: List<MyCollectibleStruct>)에 정의된 형식 및 함수는 수집 가능한 어셈블리로 인스턴스화될 수 있습니다.
E_OUTOFMEMORY JIT 다시 컴파일을 위해 지정된 메서드를 표시하는 동안 CLR의 메모리가 부족합니다.
기타 운영 체제가 CLR의 제어 범위를 벗어난 오류를 반환했습니다. 예를 들어 메모리 페이지의 액세스 보호를 변경하려는 시스템 호출이 실패하면 운영 체제 오류가 표시됩니다.

요구 사항

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

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

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

참고 항목