Поделиться через


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

См. также раздел