Freigeben über


IDebugControl3::SetInterrupt-Methode (dbgeng.h)

Die SetInterrupt-Methode registriert einen Benutzerunterbrechung oder bricht in den Debugger ein.

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 das Modul einen Break in den Debugger an. Bei dieser Anforderung kann ein Timeout auftreten. Weitere Informationen finden Sie im Abschnitt "Hinweise".

Andernfalls registriert das Modul, 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 das Modul die Rückgabe. Wenn Debuggerbefehle vorhanden sind, die die Ausführung im Ziel verursachen (z. B. g (Go) und p (Schritt), erzwingt das Modul die Ausführung. Dadurch wird kein Break in den Debugger erzwungen, sodass das Ziel möglicherweise nicht angehalten wird. In diesem Fall gibt der WaitForEvent-Aufruf E_PENDING zurück.

Andernfalls registrieren Sie, wenn das Ziel angehalten wird, einen Benutzerunterbrechung.

Rückgabewert

Diese Methode kann auch Fehlerwerte zurückgeben. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.

Hinweise

Diese Methode kann jederzeit und aus einem beliebigen Thread aufgerufen werden. Sobald der Interrupt registriert wurde, gibt diese Methode sofort zurück.

Wenn Flags DEBUG_INTERRUPT_ACTIVE ist und für den Interrupt ein Zeitüberschreitung auftritt, generiert das Modul 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 (einschließlich Dbgeng.h)

Weitere Informationen

GetInterrupt

GetInterruptTimeout

IDebugControl

IDebugControl2

IDebugControl3

SetInterruptTimeout