다음을 통해 공유


IDebugControl::SetInterrupt 메서드(dbgeng.h)

SetInterrupt 메서드는 사용자 인터럽트를 등록하거나 디버거에 침입합니다.

통사론

HRESULT SetInterrupt(
  [in] ULONG Flags
);

매개 변수

[in] Flags

등록할 인터럽트 유형을 지정합니다. 플래그 다음 표에 나열된 값 중 하나를 사용할 수 있습니다.

묘사
DEBUG_INTERRUPT_ACTIVE 대상이 실행 중인 경우 엔진은 디버거에 대한 중단을 요청합니다. 이 요청은 시간이 초과될 수 있습니다. 자세한 내용은 "주의" 섹션을 참조하세요.

그렇지 않으면 대상이 일시 중단되면 엔진이 사용자 인터럽트를 등록합니다.

DEBUG_INTERRUPT_PASSIVE 엔진은 사용자 인터럽트를 등록합니다.
DEBUG_INTERRUPT_EXIT 현재 실행 중인 WaitForEvent 호출이 있는 경우 엔진이 강제로 반환합니다. 대상에서 실행을 유발하는 디버거 명령(예: g(Go)p(단계))이 있는 경우 엔진은 강제로 완료합니다. 이렇게 하면 디버거에 강제로 침입하지 않으므로 대상이 일시 중단되지 않을 수 있습니다. 이 경우 WaitForEvent 호출은 E_PENDING 반환합니다.

그렇지 않으면 대상이 일시 중단되면 사용자 인터럽트를 등록합니다.

반환 값

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값 참조하세요.

반환 코드 묘사
S_OK
메서드가 성공했습니다.

발언

이 메서드는 언제든지 스레드에서 호출할 수 있습니다. 인터럽트 등록되면 이 메서드는 즉시 반환됩니다.

Flags DEBUG_INTERRUPT_ACTIVE 인터럽트 시간이 초과되면 엔진은 가상 예외 이벤트를 생성합니다. 이 이벤트는 이벤트 콜백의 IDebugEventCallbacks::Exception 메서드로 전송됩니다. SetInterruptTimeout사용하여 인터럽트 제한 시간 초과 전의 시간을 설정할 수 있습니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 dbgeng.h(Dbgeng.h 포함)

참고 항목

GetInterrupt

GetInterruptTimeout

IDebugControl

IDebugControl2

IDebugControl3

SetInterruptTimeout