Condividi tramite


Metodo IDebugControl3::SetInterrupt (dbgeng.h)

Il metodo SetInterrupt registra un interrupt utente o si interrompe nel debugger.

Sintassi

HRESULT SetInterrupt(
  [in] ULONG Flags
);

Parametri

[in] Flags

Specifica il tipo di interrupt da registrare. 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 scadere. 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 tal caso, la chiamata WaitForEvent restituirà E_PENDING.

In caso contrario, quando la destinazione viene sospesa, registrare un interrupt utente.

Valore restituito

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

Codice restituito Descrizione
S_OK
Il metodo ha avuto esito positivo.

Osservazioni

Questo metodo può essere chiamato in qualsiasi momento e da qualsiasi thread. Dopo aver registrato l'interrupt, questo metodo viene restituito immediatamente.

Se Flag è 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. Quantità di tempo prima che il timeout dell'interrupt possa essere impostato usando SetInterruptTimeout.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione dbgeng.h (include Dbgeng.h)

Vedere anche

GetInterrupt

GetInterruptTimeout

IDebugControl

IDebugControl2

IDebugControl3

SetInterruptTimeout