Metodo IDebugControl::SetInterrupt (dbgeng.h)

Il metodo SetInterrupt registra un'interruzione o un'interruzione dell'utente nel debugger.

Sintassi

HRESULT SetInterrupt(
  [in] ULONG Flags
);

Parametri

[in] Flags

Specifica il tipo di interrupt da registrare. I flag possono accettare uno dei valori elencati nella tabella seguente.

Valore Descrizione
DEBUG_INTERRUPT_ACTIVE Se la destinazione è in esecuzione, il motore richiederà un'interruzione nel debugger. Questa richiesta potrebbe verificarsi il timeout. Per altre informazioni, vedere la sezione "Osservazioni".

In caso contrario, quando la destinazione viene sospesa, il motore registrerà un interrupt utente.

DEBUG_INTERRUPT_PASSIVE Il motore registrerà un interrupt utente.
DEBUG_INTERRUPT_EXIT Se è attualmente in esecuzione una chiamata WaitForEvent , il motore forza la restituzione. Se sono presenti comandi del debugger che causano l'esecuzione nella destinazione, ad esempio g (Go) e p (passaggio), il motore li forza a completare. Ciò non forza un'interruzione nel debugger, pertanto la destinazione potrebbe non essere sospesa. In questo caso, la chiamata WaitForEvent restituirà E_PENDING.

In caso contrario, quando la destinazione viene sospesa, registrare un'interruzione dell'utente.

Valore restituito

Questo metodo può anche restituire valori di errore. Per altri dettagli, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.

Commenti

Questo metodo può essere chiamato in qualsiasi momento e da qualsiasi thread. Dopo la registrazione dell'interrupt, questo metodo restituisce immediatamente.

Se Flags è DEBUG_INTERRUPT_ACTIVE e si verifica il timeout dell'interrupt, il motore genererà un evento di eccezione sintetica. Questo evento verrà inviato al metodo IDebugEventCallbacks::Exception del callback dell'evento. La quantità di tempo prima del timeout dell'interrupt può essere impostata usando SetInterruptTimeout.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (include Dbgeng.h)

Vedi anche

GetInterrupt

GetInterruptTimeout

Idebugcontrol

IDebugControl2

IDebugControl3

SetInterruptTimeout