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
Параметры
-c "Cmd1"
Указывает команду, которая выполняется при возникновении исключения или события. Эта команда выполняется при первой возможности обработки этого исключения, независимо от того, входит ли это исключение в отладчик. Строку Cmd1 необходимо заключить в кавычки. Эта строка может содержать несколько команд, если разделять их точкой с запятой. Пространство между -c и строкой команды в кавычках является необязательным.
-c2"Cmd2"
Указывает команду, которая выполняется, если возникает исключение или событие и не обрабатывается при первой же возможности. Эта команда выполняется, когда возникает вторая возможность обработки этого исключения, независимо от того, входит ли это исключение в отладчик. Строку Cmd2 необходимо заключить в кавычки. Эта строка может содержать несколько команд, если разделять их точкой с запятой. Пробел между -c2 и командной строкой в кавычках необязателен.
-h
Изменяет состояние обработки указанного события вместо состояния приостановки. Если event имеет значение cc, hc, bpec или ssec, вам не нужно использовать параметр -h .
Exception
Указывает номер исключения, с которым выполняется команда в текущем радиксе.
Событие
Указывает событие, с которым выполняется команда. Эти события идентифицируются короткими сокращениями. Список событий см. в разделе Управление исключениями и событиями.
*
Влияет на все исключения, которые не называются явным образом для sx. Список исключений с явным именем см. в разделе Управление исключениями и событиями.
Среда
Режимы | Пользовательский режим, режим ядра |
Целевые объекты | Только динамическая отладка |
Платформы | Все |
Дополнительные сведения
Дополнительные сведения о состоянии прерывания и состоянии обработки, описания всех кодов событий, список состояния по умолчанию для всех событий и другие методы управления этим состоянием см. в разделе Управление исключениями и событиями.
Комментарии
Команда sx отображает список исключений для текущего процесса и список всех событий, не являющихся исключениями, а также поведение отладчика по умолчанию для каждого исключения и события.
Команды sxe, sxd, sxn и sxi управляют параметрами отладчика для каждого исключения и события.
Команда sxr сбрасывает все состояния исключений и фильтра событий до параметров по умолчанию. Например, команды очищаются и прерываются, а параметры продолжения сбрасываются до параметров по умолчанию.
Команда sx-не изменяет состояние обработки или состояние прерывания указанного исключения или события. Эту команду можно использовать, если вы хотите изменить команду первого или второго шанса, связанную с определенным событием, но не хотите изменять что-либо другое.
Если вы включаете параметр -h (или если указаны события cc, hc, bpec или ssec ), команды sxe, sxd, sxn и sxi управляют состоянием обработки исключения или события. Во всех остальных случаях эти команды управляют состоянием прерывания исключения или события.
При настройке состояния приостановки эти команды оказывают следующие эффекты:
Get-Help | Имя состояния | Описание |
---|---|---|
sxe | Разбиение (Включено) |
При возникновении этого исключения целевой объект немедленно врывается в отладчик перед активацией других обработчиков ошибок. Такой тип обработки называется обработкой первого шанса . |
Sxd | Второй шанс перерыв (Отключено) |
Отладчик не прерывается для исключения первого случая этого типа (хотя отображается сообщение). Если другие обработчики ошибок не устраняют это исключение, выполнение останавливается, а целевой объект прерывается в отладчике. Такой тип обработки называется обработкой второго шанса . |
sxn | Выходные данные (Уведомлять) |
При возникновении этого исключения целевое приложение вообще не переходит в отладчик. Однако отображается сообщение, уведомляющее пользователя об этом исключении. |
Sxi | Пропуск | При возникновении этого исключения целевое приложение вообще не переходит в отладчик, и сообщение не отображается. |
При настройке состояния обработки эти команды оказывают следующие эффекты:
Get-Help | Имя состояния | Описание |
---|---|---|
sxe | Обрабатываются | Событие считается обработанным при возобновлении выполнения. |
sxd,sxn,sxi | Не обработано | Событие считается не обработанным при возобновлении выполнения. |
Параметр -h можно использовать вместе с исключениями, а не событиями. Используйте этот параметр с ch, bpe или sse , чтобы задать состояние обработки для hc, bpec или ssec соответственно. Если вы используете параметр -h с любым другим событием, это не оказывает никакого влияния.
Используйте параметры -c или -c2 с hc, bpec или ssec , чтобы связать указанные команды с ch, bpe или sse соответственно.
В следующем примере команда 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"
. . .