ICorProfilerCallback::ExceptionCatcherEnter 메서드

컨트롤이 적절한 catch 블록에 전달되고 있음을 프로파일러에 알립니다.

HRESULT ExceptionCatcherEnter(
    [in] FunctionID functionId,
    [in] ObjectID   objectId);

매개 변수

  • functionId
    [in] catch 블록이 들어 있는 함수의 식별자입니다.

  • objectId
    [in] 처리 중인 예외의 식별자입니다.

설명

ExceptionCatcherEnter 메서드는 catch 지점이 JIT(Just-In-Time) 컴파일러로 컴파일된 코드에 있는 경우에만 호출됩니다. 비관리 코드나 런타임의 내부 코드에서 catch된 예외는 이 알림을 호출하지 않습니다. objectId 값은 ExceptionThrown 알림 이후 가비지 수집을 통해 개체가 이동되었으면 다시 전달됩니다.

스택이 가비지 수집을 허용하지 않는 상태가 되어 선점형 가비지 수집을 사용하지 못할 수 있으므로 이 메서드 구현 시 프로파일러가 차단되지 않아야 합니다. 이때 프로파일러가 차단되고 가비지 수집이 시도될 경우 이 콜백이 반환될 때까지 런타임이 차단됩니다.

프로파일러가 이 메서드를 구현할 때 관리 코드가 호출되거나 관리되는 메모리가 할당되어서는 안 됩니다.

요구 사항

플랫폼: .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

참고 항목

참조

ICorProfilerCallback 인터페이스

ICorProfilerCallback::ExceptionCatcherLeave 메서드