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' "
不再建议使用此类型的条件断点,因为调试器中现在提供了更简单的表单。 有关条件断点语法的详细信息,请参阅 设置条件断点。