j(执行 If - Else)

j 命令根据给定表达式的计算,有条件地执行指定命令之一。

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

参数

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

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

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

环境

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

注解

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

如果 MySymbol 等于零,则以下命令显示 eax 的值,否则显示 ebx 和 ecx 的值

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 (执行时)