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

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

구문

HRESULT SetInterrupt(
  [in] ULONG Flags
);

매개 변수

[in] Flags

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

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

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

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

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

반환 값

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

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.

설명

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

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

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h 포함)

추가 정보

GetInterrupt

GetInterruptTimeout

IDebugControl

IDebugControl2

IDebugControl3

SetInterruptTimeout