Share via


j (Execute If – Else)

O comando j executa condicionalmente um dos comandos especificados, dependendo da avaliação de uma determinada expressão.

j Expression Command1 ; Command2 
j Expression 'Command1' ; 'Command2' 

Parâmetros

Expressão
A expressão a ser avaliada. Se essa expressão for avaliada como um valor diferente de zero, Command1 será executado. Se essa expressão for avaliada como zero, Command2 será executado. Para obter mais informações sobre a sintaxe dessa expressão, consulte Sintaxe de expressão numérica.

Command1
A cadeia de caracteres de comando a ser executada se a expressão em Expression for avaliada como um valor diferente de zero (TRUE). Você pode combinar vários comandos cercando a cadeia de caracteres de comando com aspas retas simples ( ' ) e separando comandos usando ponto e vírgula. Se a cadeia de caracteres de comando for um único comando, as aspas simples serão opcionais.

Command2
A cadeia de caracteres de comando a ser executada se a expressão em Expression for avaliada como zero (FALSE). Você pode combinar vários comandos cercando a cadeia de caracteres de comando com aspas retas simples ( ' ) e separando comandos usando ponto e vírgula. Se a cadeia de caracteres de comando for um único comando, as aspas simples serão opcionais.

Ambiente

Item Descrição
Modos Modo de usuário, modo kernel
Destinos Ao vivo, despejo de memória
Plataformas Tudo

Comentários

Não é possível adicionar um ponto e vírgula ou comandos adicionais após o comando j . Se um ponto e vírgula aparecer após Command2, tudo após o ponto e vírgula será ignorado.

O comando a seguir exibe o valor de eax se MySymbol for igual a zero e exibir os valores de ebx e ecx caso contrário.

0:000> j (MySymbol=0) 'r eax'; 'r ebx; r ecx' 

Você pode omitir as aspas simples em torno de r eax, mas elas facilitam a leitura do comando. Se você quiser omitir um dos comandos, poderá incluir aspas vazias ou omitir o parâmetro para esse comando, como nos comandos a seguir.

0:000> j (MySymbol=0) ''; 'r ebx; r ecx' 
0:000> j (MySymbol=0)  ; 'r ebx; r ecx' 

Você também pode usar o comando j dentro de outros comandos. Por exemplo, você pode usar um comando j para criar pontos de interrupção condicionais.

0:000> bp `mysource.cpp:143` "j (poi(MyVar)>0n20) ''; 'gc' "

Esse estilo de ponto de interrupção condicional não é mais recomendado, pois um formulário mais simples agora está disponível no depurador. Para obter mais informações sobre a sintaxe de pontos de interrupção condicionais, consulte Configurando um ponto de interrupção condicional.

Confira também

z (Executar Enquanto)