Поделиться через


j (Execute If - Else)

Команда j условно выполняет одну из указанных команд в зависимости от оценки заданного выражения.

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

Параметры

Выражение
Выражение для вычисления. Если это выражение оценивается как ненулевое значение, команда1 выполняется. Если это выражение равно нулю, выполняется command2 . Дополнительные сведения о синтаксисе этого выражения см. в разделе "Синтаксис числовых выражений".

Command1
Командная строка, выполняемая, если выражение в выражении вычисляется как ненулевое значение (TRUE). Можно объединить несколько команд, окружив строку команды одними прямыми кавычками ( ' ) и разделив команды с запятой. Если строка команды является одной командой, одинарные кавычки являются необязательными.

Command2
Командная строка, выполняемая, если выражение в выражении вычисляется до нуля (FALSE). Можно объединить несколько команд, окружив строку команды одними прямыми кавычками ( ' ) и разделив команды с запятой. Если строка команды является одной командой, одинарные кавычки являются необязательными.

Среда

Позиция Description
Режимы Режим пользователя, режим ядра
Целевые объекты Динамический, аварийный дампа
Платформы Все

Замечания

Невозможно добавить точку с запятой или дополнительные команды после команды j . Если точка с запятой отображается после Command2, все после запятой игнорируется.

Следующая команда отображает значение eax, если MySymbol равно нулю и отображает значения ebx и ecx в противном случае.

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

Вы можете пропустить одинарные кавычки вокруг rax, но они упрощают чтение команды. Если вы хотите пропустить одну из команд, можно включить пустые кавычки или опустить параметр для этой команды, как показано в следующих командах.

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 (выполнение в то время как)