IDebugControl2::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 |
---|---|
|
메서드를 성공적으로 수행했습니다. |
설명
이 메서드는 언제든지 스레드에서 호출할 수 있습니다. 인터럽트 등록이 완료되면 이 메서드는 즉시 반환됩니다.
플래그가 DEBUG_INTERRUPT_ACTIVE 인터럽트 시간이 초과되면 엔진은 가상 예외 이벤트를 생성합니다. 이 이벤트는 이벤트 콜백의 IDebugEventCallbacks::Exception 메서드로 전송됩니다. SetInterruptTimeout을 사용하여 인터럽트 시간 초과 전의 시간을 설정할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | dbgeng.h(Dbgeng.h 포함) |