sx, sxd, sxe, sxi, sxn, sxr, sx- (Set Exceptions)
I comandi sx controllano l'azione eseguita dal debugger quando si verifica un'eccezione nell'applicazione di cui viene eseguito il debug o quando si verificano determinati eventi.
sx
sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2"] [-h] {Exception|Event|*}
sx- [-c "Cmd1"] [-c2 "Cmd2"] {Exception|Event|*}
sxr
Parametri
-c "Cmd1"
Specifica un comando eseguito se si verifica l'eccezione o l'evento. Questo comando viene eseguito quando si verifica la prima possibilità di gestire questa eccezione, indipendentemente dal fatto che questa eccezione si interrompa nel debugger. È necessario racchiudere la stringa Cmd1 tra virgolette. Questa stringa può includere più comandi se li si separa con punto e virgola. Lo spazio tra -c e la stringa di comando tra virgolette è facoltativo.
-c2"Cmd2"
Specifica un comando che viene eseguito se si verifica l'eccezione o l'evento e non viene gestito per la prima volta. Questo comando viene eseguito quando si verifica la seconda possibilità di gestire questa eccezione, indipendentemente dal fatto che questa eccezione si interrompa nel debugger. È necessario racchiudere la stringa Cmd2 tra virgolette. Questa stringa può includere più comandi se li si separa con punto e virgola. Lo spazio tra -c2 e la stringa di comando tra virgolette è facoltativo.
-h
Modifica lo stato di gestione dell'evento specificato anziché lo stato di interruzione. Se Event è cc, hc, bpec o ssec, non è necessario usare l'opzione -h .
Eccezione
Specifica il numero di eccezione su cui il comando agisce nel radix corrente.
Event
Specifica l'evento su cui agisce il comando. Questi eventi sono identificati da abbreviazioni brevi. Per un elenco degli eventi, vedere Controllo di eccezioni ed eventi.
*
Influisce su tutte le eccezioni che non sono altrimenti denominate in modo esplicito per sx. Per un elenco di eccezioni denominate in modo esplicito, vedere Controllo di eccezioni ed eventi.
Ambiente
Modalità | Modalità utente, modalità kernel |
Server di destinazione | Solo debug in tempo reale |
Piattaforme | Tutti |
Informazioni aggiuntive
Per altre informazioni sullo stato di interruzione e sulla gestione dello stato, descrizioni di tutti i codici evento, un elenco dello stato predefinito per tutti gli eventi e altri metodi di controllo di questo stato, vedere Controllo di eccezioni ed eventi.
Commenti
Il comando sx visualizza l'elenco delle eccezioni per il processo corrente e l'elenco di tutti gli eventi non di eccezione e visualizza il comportamento predefinito del debugger per ogni eccezione e evento.
I comandi sxe, sxd, sxn e sxi controllano le impostazioni del debugger per ogni eccezione e evento.
Il comando sxr reimposta tutti gli stati di eccezione e filtro eventi sulle impostazioni predefinite. Ad esempio, i comandi vengono cancellati e interrotti e le opzioni continue vengono reimpostate sulle impostazioni predefinite.
Il comando sx- non modifica lo stato di gestione o lo stato di interruzione dell'eccezione o dell'evento specificato. Questo comando può essere usato se si desidera modificare il comando first-chance o il comando second-chance associato a un evento specifico, ma non si vuole modificare altro.
Se si include l'opzione -h (o se vengono specificati gli eventi cc, hc, bpec o ssec ), i comandi sxe, sxd, sxn e sxi controllano lo stato di gestione dell'eccezione o dell'evento. In tutti gli altri casi, questi comandi controllano lo stato di interruzione dell'eccezione o dell'evento.
Quando si imposta lo stato di interruzione, questi comandi hanno gli effetti seguenti:
Comando | Nome stato | Descrizione |
---|---|---|
Sxe | Applicazione (Abilitato) |
Quando si verifica questa eccezione, la destinazione si interrompe immediatamente nel debugger prima dell'attivazione di qualsiasi altro gestore di errori. Questo tipo di gestione è chiamato gestione first-chance . |
Sxd | Second chance break (Disabilitato) |
Il debugger non si interrompe per un'eccezione first-chance di questo tipo (anche se viene visualizzato un messaggio). Se altri gestori di errori non risolvano questa eccezione, l'esecuzione viene arrestata e la destinazione si interrompe nel debugger. Questo tipo di gestione è chiamato gestione della seconda probabilità . |
sxn | Output (Notifica) |
Quando si verifica questa eccezione, l'applicazione di destinazione non si interrompe affatto nel debugger. Viene tuttavia visualizzato un messaggio che notifica all'utente di questa eccezione. |
Sxi | Ignora | Quando si verifica questa eccezione, l'applicazione di destinazione non si interrompe affatto nel debugger e non viene visualizzato alcun messaggio. |
Quando si imposta lo stato di gestione, questi comandi hanno gli effetti seguenti:
Comando | Nome stato | Descrizione |
---|---|---|
Sxe | Gest. | L'evento viene considerato gestito quando viene ripresa l'esecuzione. |
sxd, sxn, sxi | Non gestito | L'evento viene considerato non gestito quando viene ripresa l'esecuzione. |
È possibile usare l'opzione -h insieme alle eccezioni, non agli eventi. Usare questa opzione con ch, bpe o sse per impostare rispettivamente lo stato di gestione per hc, bpec o ssec. Se si usa l'opzione -h con qualsiasi altro evento, non ha alcun effetto.
Usare le opzioni -c o -c2 rispettivamente con hc, bpec o ssec per associare i comandi specificati a ch, bpe o sse.
Nell'esempio seguente, il comando sxe viene usato per impostare lo stato di interruzione degli eventi di violazione di accesso per interrompere la prima probabilità e impostare il comando first-chance che verrà eseguito in quel punto a r eax. Viene quindi usato il comando sx- per modificare il comando first-chance in r ebx, senza modificare lo stato di gestione. Viene infine visualizzata una parte dell'output sx , che indica le impostazioni correnti per gli eventi di violazione di accesso:
0:000> sxe -c "r eax" av
0:000> sx- -c "r ebx" av
0:000> sx
av - Access violation - break - not handled
Command: "r ebx"
. . .