简介
sx*命令控制调试器在正在调试的应用程序中发生异常或发生某些事件时采取的操作。
使用形式
sx
sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2"] [-h] {Exception|Event|*}
sx- [-c "Cmd1"] [-c2 "Cmd2"] {Exception|Event|*}
sxr
参数
- -C 和带引号的命令字符串之间的空格是可选的。
-
-C2 和带引号的命令字符串之间的空格是可选的。 - 如果事件为cc、 hc、 bpec或ssec,则无需使用 -h选项。
- Exception
以当前基数指定命令作用于的异常号。 - Event
指定命令所作用的事件。这些事件用简短的缩写来表示。 - *
影响所有未以其他方式显式命名为sx的异常。
支持环境
|
模块 |
用户模式,内核模式 |
|
目标 |
仅限实时调试 |
|
适用 |
全部 |
说明
sx命令显示当前进程的异常列表和所有非异常事件的列表,并显示每个异常和事件的调试器的默认行为。SXE、SXD、SXN和SXI命令控制每个异常和事件的调试器设置。sxr命令将所有异常和事件筛选器状态重置为默认设置。命令将被清除,中断和继续选项将重置为其默认设置,依此类推。sx-命令不会更改指定异常或事件的处理状态或中断状态。如果希望更改与特定事件关联的第一次机会命令或第二次机会命令,但不希望更改任何其他命令,则可以使用此命令。如果包含-h选项(或者如果指定了CC、HC、BPEC或SSEC事件),则SXE、SXD、SXN和SXI命令控制异常或事件的处理状态。在所有其他情况下,这些命令控制异常或事件的中断状态。
设置中断状态时,这些命令具有以下效果:
| Command | Status name | Description |
|---|---|---|
|
sxe |
Break (Enabled) |
这种处理称为第一次机会处理。 |
|
sxd |
Second chance break (Disabled) |
这种处理称为第二次机会处理。 |
|
sxn |
Output (Notify) |
但是,会显示一条消息,通知用户此异常。 |
|
sxi |
Ignore |
发生此异常时,目标应用程序根本不会中断调试器,而且不显示任何消息。 |
设置处理状态时,这些命令具有以下效果:
| Command | Status name | Description |
|---|---|---|
|
sxe |
Handled |
继续执行时,该事件被视为已处理。 |
|
sxd,sxn,sxi |
Not Handled |
继续执行时,该事件被视为未处理。 |
如果对任何其他事件使用-h 选项,则该选项不起作用。将 -c或 -c2选项与hc、 bpec或ssec一起使用时,会将指定的命令分别与ch、 bpe或sse关联。
最后,显示sx输出的一部分,指示访问冲突事件的当前设置:
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"