ICorDebugManagedCallback2::FunctionRemapOpportunity 메서드

코드 실행이 편집된 함수의 이전 버전에서 시퀀스 지점에 도달했음을 디버거에 알립니다.

구문

HRESULT FunctionRemapOpportunity (
    [in] ICorDebugAppDomain   *pAppDomain,
    [in] ICorDebugThread      *pThread,
    [in] ICorDebugFunction    *pOldFunction,
    [in] ICorDebugFunction    *pNewFunction,
    [in] ULONG32              oldILOffset
);

매개 변수

pAppDomain[in] 편집된 함수를 포함하는 애플리케이션을 나타내는 ICorDebugAppDo기본 개체에 대한 포인터기본.

pThread [in] 다시 매핑 중단점이 발생한 스레드를 나타내는 ICorDebugThread 개체에 대한 포인터입니다.

pOldFunction [in] 현재 스레드에서 실행 중인 함수의 버전을 나타내는 ICorDebugFunction 개체에 대한 포인터입니다.

pNewFunction [in] 함수의 최신 버전을 나타내는 ICorDebugFunction 개체에 대한 포인터입니다.

oldILOffset [in] 이전 버전의 함수에 있는 명령 포인터의 CIL(공용 중간 언어) 오프셋입니다.

설명

이 콜백은 ICorDebugILFrame2::RemapFunction 메서드를 호출하여 지정된 함수의 새 버전에서 명령 포인터를 적절한 위치에 다시 매핑할 수 있는 기회를 디버거에 제공합니다. 디버거가 ICorDebugController::Continue 메서드를 호출하기 전에 RemapFunction을 호출하지 않으면 런타임은 이전 코드를 계속 실행하고 다음 시퀀스 지점에서 다른 FunctionRemapOpportunity 콜백을 실행합니다.

이 콜백은 디버거가 S_OK를 반환할 때까지 지정된 함수의 이전 버전을 실행하는 모든 프레임에 대해 호출됩니다.

요구 사항

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

헤더: CorDebug.idl, CorDebug.h

라이브러리: CorGuids.lib

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

참고 항목