其他分享
首页 > 其他分享> > WinDbg常用命令系列---sx, sxd, sxe, sxi, sxn, sxr, sx- (设置异常)

WinDbg常用命令系列---sx, sxd, sxe, sxi, sxn, sxr, sx- (设置异常)

作者:互联网

简介

sx*命令控制调试器在正在调试的应用程序中发生异常或发生某些事件时采取的操作。

使用形式

sx

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

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

sxr

参数

支持环境

模块

用户模式,内核模式

目标

仅限实时调试

适用

全部

说明

sx命令显示当前进程的异常列表和所有非异常事件的列表,并显示每个异常和事件的调试器的默认行为。SXE、SXD、SXN和SXI命令控制每个异常和事件的调试器设置。sxr命令将所有异常和事件筛选器状态重置为默认设置。命令将被清除,中断和继续选项将重置为其默认设置,依此类推。sx-命令不会更改指定异常或事件的处理状态或中断状态。如果希望更改与特定事件关联的第一次机会命令或第二次机会命令,但不希望更改任何其他命令,则可以使用此命令。如果包含-h选项(或者如果指定了CC、HC、BPEC或SSEC事件),则SXE、SXD、SXN和SXI命令控制异常或事件的处理状态。在所有其他情况下,这些命令控制异常或事件的中断状态。
设置中断状态时,这些命令具有以下效果:

CommandStatus nameDescription

sxe

Break

(Enabled)

发生此异常时,目标会在激活任何其他错误处理程序之前立即中断调试器。 这种处理称为第一次机会处理。

sxd

Second chance break

(Disabled)

对于此类型的第一次异常,调试器不会中断(尽管显示了一条消息)。 如果其他错误处理程序未解决此异常,将停止执行,并将目标中断到调试器中。 这种处理称为第二次机会处理。

sxn

Output

(Notify)

发生此异常时,目标应用程序根本不会中断调试器。 但是,会显示一条消息,通知用户此异常。

sxi

Ignore

发生此异常时,目标应用程序根本不会中断调试器,而且不显示任何消息。

设置处理状态时,这些命令具有以下效果:

CommandStatus nameDescription

sxe

Handled

继续执行时,该事件被视为已处理。

sxd,sxn,sxi

Not Handled

继续执行时,该事件被视为未处理。

可以结合使用 -h选项和异常,而不是事件。 将此选项与chbpesse一起使用将分别设置hcbpecssec的处理状态。 如果对任何其他事件使用-h 选项,则该选项不起作用。将 -c-c2选项与hcbpecssec一起使用时,会将指定的命令分别与chbpesse关联。

在下面的示例中, sxe命令用于将访问冲突事件的中断状态设置为在第一次机会时中断,并设置将在该点执行到r eax的第一条命令。 然后使用sx命令将第一条命令更改为r ebx,而无需更改处理状态。 最后,显示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"

标签:sx,sxd,sxe,中断,命令,事件,异常,调试器
来源: https://www.cnblogs.com/yilang/p/12016205.html