IDebugControl2::SetInterrupt-Methode (dbgeng.h)

Die SetInterrupt-Methode registriert eine Benutzerunterbrechung oder unterbricht den Debugger.

Syntax

HRESULT SetInterrupt(
  [in] ULONG Flags
);

Parameter

[in] Flags

Gibt den Typ des zu registrierenden Interrupts an. Flags können einen der in der folgenden Tabelle aufgeführten Werte annehmen.

Wert BESCHREIBUNG
DEBUG_INTERRUPT_ACTIVE Wenn das Ziel ausgeführt wird, fordert die Engine eine Unterbrechung des Debuggers an. Für diese Anforderung kann ein Timeout auftreten. Weitere Informationen finden Sie im Abschnitt "Hinweise".

Andernfalls registriert die Engine, wenn das Ziel angehalten wird, einen Benutzerunterbrechung.

DEBUG_INTERRUPT_PASSIVE Die Engine registriert einen Benutzerunterbrechung.
DEBUG_INTERRUPT_EXIT Wenn derzeit ein WaitForEvent-Aufruf ausgeführt wird, erzwingt die Engine die Rückgabe. Wenn Debuggerbefehle vorhanden sind, die die Ausführung im Ziel verursachen , z. B. g (Go) und p (Schritt), erzwingt die Engine den Abschluss. Dadurch wird keine Unterbrechung des Debuggers erzwungen, sodass das Ziel möglicherweise nicht angehalten wird. In diesem Fall gibt der WaitForEvent-Aufruf E_PENDING zurück.

Wenn das Ziel angehalten wird, registrieren Sie andernfalls einen Benutzerunterbrechung.

Rückgabewert

Diese Methode gibt möglicherweise auch Fehlerwerte zurück. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.

Hinweise

Diese Methode kann jederzeit und von jedem Thread aufgerufen werden. Nachdem der Interrupt registriert wurde, wird diese Methode sofort zurückgegeben.

Wenn Flags DEBUG_INTERRUPT_ACTIVE ist und das Interrupttimeout auftritt, generiert die Engine ein synthetisches Ausnahmeereignis. Dieses Ereignis wird an die IDebugEventCallbacks::Exception-Methode des Ereignisrückrufs gesendet. Die Zeitspanne bis zum Unterbrechungstimeout kann mithilfe von SetInterruptTimeout festgelegt werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dbgeng.h (dbgeng.h einschließen)

Weitere Informationen

GetInterrupt

GetInterruptTimeout

IDebugControl

IDebugControl2

IDebugControl3

SetInterruptTimeout