Debugging Tools for Windows

j (Execute If - Else)

j命令根据给定表达式的值,条件执行指定命令中的一个。

语法

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

参数

Expression
要求值的表达式。如果表达式的值是非0值,则执行Command1 。如果表达式的值为0,则执行Command2 。该表达式语法的更多信息,查看数值表达式语法
Command1
Expression 为非0值(TRUE)时要执行的命令字符串。可以通过在命令字符串两边加上单引号( ' ),并且以分号来分隔各个命令来一次使用多条命令。如果命令字符串是单条命令,单引号是可选的。
Command2

Expression 值为0(FALSE)时要执行的命令字符串。可以通过在命令字符串两边加上单引号( ' ),并且以分号来分隔各个命令来一次使用多条命令。如果命令字符串是单条命令,单引号是可选的。

环境

模式 用户模式、内核模式
目标 活动目标、崩溃转储
平台 所有

注释

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

下面的命令当MySymbol 等于0时显示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 (Execute While)

Build machine: CAPEBUILD