Partilhar via


sx, sxd, sxe, sxi, sxn, sxr, sx- (Definir exceções)

Os comandos sx controlam a ação que o depurador executa quando ocorre uma exceção no aplicativo que está sendo depurado ou quando determinados eventos ocorrem.

sx

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

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

sxr

Parâmetros

-c "Cmd1"
Especifica um comando que será executado se ocorrer a exceção ou o evento. Esse comando é executado quando ocorre a primeira chance de lidar com essa exceção, independentemente de essa exceção ser dividida no depurador. Você deve colocar a cadeia de caracteres Cmd1 entre aspas. Essa cadeia de caracteres pode incluir vários comandos se você separá-los com ponto e vírgula. O espaço entre -c e a cadeia de caracteres de comando entre aspas é opcional.

-c2"Cmd2"
Especifica um comando que será executado se a exceção ou o evento ocorrer e não for tratado na primeira chance. Esse comando é executado quando ocorre a segunda chance de lidar com essa exceção, independentemente de essa exceção ser dividida no depurador. Você deve colocar a cadeia de caracteres Cmd2 entre aspas. Essa cadeia de caracteres pode incluir vários comandos se você separá-los com ponto e vírgula. O espaço entre -c2 e a cadeia de caracteres de comando entre aspas é opcional.

-h
Altera a manipulação do evento especificado status em vez de sua status de interrupção. Se Event for cc, hc, bpec ou ssec, você não precisará usar a opção -h .

Exceção
Especifica o número de exceção em que o comando atua no radix atual.

Evento
Especifica o evento no qual o comando atua. Esses eventos são identificados por abreviações curtas. Para obter uma lista dos eventos, consulte Controlando exceções e eventos.

*
Afeta todas as exceções que não são nomeadas explicitamente para sx. Para obter uma lista de exceções explicitamente nomeadas, consulte Controlando exceções e eventos.

Ambiente

   
Modos Modo de usuário, modo kernel
Destinos Somente depuração dinâmica
Plataformas Tudo

Informações adicionais

Para obter mais informações sobre status de interrupção e manipulação de status, descrições de todos os códigos de evento, uma lista dos status padrão para todos os eventos e outros métodos de controle desse status, consulte Controlando exceções e eventos.

Comentários

O comando sx exibe a lista de exceções para o processo atual e a lista de todos os eventos sem exceção e exibe o comportamento padrão do depurador para cada exceção e evento.

Os comandos sxe, sxd, sxn e sxi controlam as configurações do depurador para cada exceção e evento.

O comando sxr redefine todos os estados de exceção e filtro de evento para as configurações padrão. Por exemplo, os comandos são limpos e interrompidos e as opções continuar são redefinidas para suas configurações padrão.

O comando sx- não altera o status de tratamento ou o status de interrupção da exceção ou evento especificado. Esse comando poderá ser usado se você quiser alterar o comando de primeira chance ou o comando de segunda chance associado a um evento específico, mas não quiser alterar mais nada.

Se você incluir a opção -h (ou se os eventos cc, hc, bpec ou ssec forem especificados), os comandossxe, sxd, sxn e sxi controlarão a manipulação status da exceção ou evento. Em todos os outros casos, esses comandos controlam a status de interrupção da exceção ou evento.

Quando você está definindo a status de interrupção, esses comandos têm os seguintes efeitos:

Comando Nome do status Descrição
Sxe Quebrar
(Habilitado)
Quando essa exceção ocorre, o destino é imediatamente dividido no depurador antes que outros manipuladores de erro sejam ativados. Esse tipo de tratamento é chamado de tratamento de primeira chance .
Sxd Quebra de segunda chance
(Desabilitado)
O depurador não é interrompido para uma exceção de primeira chance desse tipo (embora uma mensagem seja exibida). Se outros manipuladores de erros não resolverem essa exceção, a execução será interrompida e o destino será interrompido no depurador. Esse tipo de tratamento é chamado de tratamento de segunda chance .
sxn Saída
(Notificar)
Quando essa exceção ocorre, o aplicativo de destino não é dividido no depurador. No entanto, é exibida uma mensagem que notifica o usuário sobre essa exceção.
sxi Ignorar Quando essa exceção ocorre, o aplicativo de destino não é dividido no depurador e nenhuma mensagem é exibida.

Quando você está definindo o tratamento status, esses comandos têm os seguintes efeitos:

Comando Nome do status Descrição
Sxe Tratado O evento é considerado manipulado quando a execução é retomada.
sxd, sxn, sxi Não tratado O evento é considerado não tratado quando a execução é retomada.

Você pode usar a opção -h junto com exceções, não eventos. Use essa opção com ch, bpe ou sse para definir o status de tratamento para hc, bpec ou ssec, respectivamente. Se você usar a opção -h com qualquer outro evento, ela não terá efeito.

Use as opções -c ou -c2 com hc, bpec ou ssec para associar os comandos especificados a ch, bpe ou sse, respectivamente.

No exemplo a seguir, o comando sxe é usado para definir a interrupção status de eventos de violação de acesso para interromper na primeira chance e para definir o comando de primeira chance que será executado nesse ponto como r eax. Em seguida, o comando sx- é usado para alterar o comando de primeira chance para r ebx, sem alterar a manipulação status. Por fim, uma parte da saída sx é mostrada, indicando as configurações atuais para eventos de violação de acesso:

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

Confira também