Freigeben über


sx, sxd, sxe, sxi, sxn, sxr, sx- (Set Exceptions)

Die sx-Befehle steuern die Aktion, die der Debugger ausführt, wenn eine Ausnahme in der Anwendung auftritt, die gedebuggt wird, oder wenn bestimmte Ereignisse auftreten.

sx

sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2"] [-h] {Exception|Event|*}

sx- [-c "Cmd1"] [-c2 "Cmd2"] {Exception|Event|*}

sxr

Parameter

-c "Cmd1"
Gibt einen Befehl an, der ausgeführt wird, wenn die Ausnahme oder das Ereignis auftritt. Dieser Befehl wird ausgeführt, wenn die erste Möglichkeit zur Behandlung dieser Ausnahme eintritt, unabhängig davon, ob diese Ausnahme in den Debugger einbricht. Sie müssen die Cmd1-Zeichenfolge in Anführungszeichen einschließen. Diese Zeichenfolge kann mehrere Befehle enthalten, wenn Sie sie durch Semikolons trennen. Das Leerzeichen zwischen -c und der Befehlszeichenfolge in Anführungszeichen ist optional.

-c2"Cmd2"
Gibt einen Befehl an, der ausgeführt wird, wenn die Ausnahme oder das Ereignis auftritt und nicht bei der ersten Chance behandelt wird. Dieser Befehl wird ausgeführt, wenn die zweite Chance zur Behandlung dieser Ausnahme eintritt, unabhängig davon, ob diese Ausnahme in den Debugger einbricht. Sie müssen die Cmd2-Zeichenfolge in Anführungszeichen einschließen. Diese Zeichenfolge kann mehrere Befehle enthalten, wenn Sie sie durch Semikolons trennen. Das Leerzeichen zwischen -c2 und der Befehlszeichenfolge in Anführungszeichen ist optional.

-h
Ändert die Behandlung des angegebenen Ereignisses status anstelle der unterbrechungsbasierten status. Wenn Eventcc, hc, bpec oder ssec ist, müssen Sie die Option -h nicht verwenden.

Exception
Gibt die Ausnahmenummer an, auf die der Befehl im aktuellen Radix einwirkt.

Event
Gibt das Ereignis an, auf das der Befehl reagiert. Diese Ereignisse werden durch kurze Abkürzungen identifiziert. Eine Liste der Ereignisse finden Sie unter Steuern von Ausnahmen und Ereignissen.

*
Wirkt sich auf alle Ausnahmen aus, die nicht explizit für sx benannt sind. Eine Liste explizit benannter Ausnahmen finden Sie unter Steuern von Ausnahmen und Ereignissen.

Environment

   
Modi Benutzermodus, Kernelmodus
Ziele Nur Livedebuggen
Plattformen Alle

Zusätzliche Informationen

Weitere Informationen zu Unterbrechungen status und zur Behandlung von status, Beschreibungen aller Ereigniscodes, eine Liste der Standard-status für alle Ereignisse und andere Methoden zum Steuern dieser status finden Sie unter Steuern von Ausnahmen und Ereignissen.

Hinweise

Der Befehl sx zeigt die Liste der Ausnahmen für den aktuellen Prozess und die Liste aller Nicht-Ausnahmeereignisse an und zeigt das Standardverhalten des Debuggers für jede Ausnahme und jedes Ereignis an.

Die Befehle sxe, sxd, sxn und sxi steuern die Debuggereinstellungen für jede Ausnahme und jedes Ereignis.

Der Befehl sxr setzt alle Ausnahme- und Ereignisfilterzustände auf die Standardeinstellungen zurück. Beispielsweise werden Befehle gelöscht und unterbrochen, und Die Optionen für "Continue" werden auf die Standardeinstellungen zurückgesetzt.

Der Befehl sx- ändert nicht die Behandlung status oder die Unterbrechung status der angegebenen Ausnahme oder des angegebenen Ereignisses. Dieser Befehl kann verwendet werden, wenn Sie den Befehl für die erste Chance oder den Befehl der zweiten Chance ändern möchten, der einem bestimmten Ereignis zugeordnet ist, aber nichts anderes ändern möchten.

Wenn Sie die Option -h einschließen (oder wenn die Ereignisse cc, hc, bpec oder ssec angegeben sind), steuern die Befehle sxe, sxd, sxn und sxi die Behandlung status der Ausnahme oder des Ereignisses. In allen anderen Fällen steuern diese Befehle die Unterbrechung status der Ausnahme oder des Ereignisses.

Wenn Sie die Unterbrechung status festlegen, haben diese Befehle die folgenden Auswirkungen:

Get-Help Statusname BESCHREIBUNG
Sxe Brechen
(Aktiviert)
Wenn diese Ausnahme auftritt, bricht das Ziel sofort in den Debugger ein, bevor andere Fehlerhandler aktiviert werden. Diese Art der Behandlung wird als Erste-Chance-Behandlung bezeichnet.
sxd Pause der zweiten Chance
(Deaktiviert)
Der Debugger wird nicht für eine Ausnahme dieses Typs mit der ersten Chance unterbrochen (obwohl eine Meldung angezeigt wird). Wenn andere Fehlerhandler diese Ausnahme nicht beheben, wird die Ausführung beendet, und das Ziel bricht in den Debugger ein. Diese Art der Behandlung wird als Second-Chance-Handling bezeichnet.
sxn Ausgabe
(Benachrichtigen)
Wenn diese Ausnahme auftritt, wird die Zielanwendung überhaupt nicht in den Debugger eingebrochen. Es wird jedoch eine Meldung angezeigt, die den Benutzer über diese Ausnahme benachrichtigt.
Sxi Ignorieren Wenn diese Ausnahme auftritt, wird die Zielanwendung überhaupt nicht in den Debugger eingebrochen, und es wird keine Meldung angezeigt.

Wenn Sie die Behandlung status festlegen, haben diese Befehle die folgenden Auswirkungen:

Get-Help Statusname BESCHREIBUNG
Sxe Verarbeitete Das Ereignis gilt als behandelt, wenn die Ausführung fortgesetzt wird.
sxd,sxn,sxi Nicht behandelt Das Ereignis gilt als nicht behandelt, wenn die Ausführung fortgesetzt wird.

Sie können die Option -h zusammen mit Ausnahmen und nicht mit Ereignissen verwenden. Verwenden Sie diese Option mit ch, bpe oder sse, um die status für hc, bpec oder ssec festzulegen. Wenn Sie die Option -h mit einem anderen Ereignis verwenden, hat dies keine Auswirkung.

Verwenden Sie die Optionen -c oder -c2 mit hc, bpec oder ssec , um die angegebenen Befehle ch, bpe oder sse zuzuordnen.

Im folgenden Beispiel wird der Befehl sxe verwendet, um den Break status von Zugriffsverletzungsereignissen so festzulegen, dass er bei der ersten Chance unterbrochen wird, und um den Befehl für die erste Chance, der an diesem Punkt ausgeführt wird, auf r eax festzulegen. Anschließend wird der Befehl sx- verwendet, um den Befehl für die erste Chance in r ebx zu ändern, ohne die Verarbeitung status zu ändern. Schließlich wird ein Teil der sx-Ausgabe angezeigt, der die aktuellen Einstellungen für Zugriffsverletzungsereignisse angibt:

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"
  . . .  

Weitere Informationen