j(执行 If - Else)

j 命令有条件地执行指定的命令之一,具体取决于给定表达式的计算。

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

参数

表达
要计算的表达式。 如果此表达式的计算结果为非零值,则执行 Command1 。 如果此表达式的计算结果为零,则执行 Command2 。 有关此表达式的语法的详细信息,请参阅 数值表达式语法

Command1
如果 Expression 中的表达式的计算结果为非零值 (TRUE) ,则要执行的命令字符串。 可以通过将命令字符串与单个直引号 ( ' ) 和使用分号分隔命令来组合多个命令。 如果命令字符串是单个命令,则单引号是可选的。

Command2
如果 Expression 中的表达式的计算结果为零 (FALSE) ,则执行的命令字符串。 可以通过将命令字符串与单个直引号 ( ' ) 和使用分号分隔命令来组合多个命令。 如果命令字符串是单个命令,则单引号是可选的。

环境

说明
模式 用户模式、内核模式
目标 实时、故障转储
平台 全部

注解

不能在 j 命令后面添加分号或其他命令。 如果 Command2 后面出现分号,则忽略分号后的所有内容。

如果 MySymbol 等于零,则以下命令显示 eax 的值,否则将显示 ebxecx 的值。

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

可以省略 r eax 周围的单引号,但它们使命令更易于阅读。 如果要省略其中一个命令,可以包含空引号或省略该命令的参数,如以下命令所示。

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

还可以在其他命令中使用 j 命令。 例如,可以使用 j 命令创建条件断点。

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

不再建议使用此样式的条件断点,因为调试器中现在提供了更简单的形式。 有关条件断点语法的详细信息,请参阅 设置条件断点

另请参阅

z(执行 While)