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' "
Этот стиль условной точки останова больше не рекомендуется, так как более простая форма теперь доступна в отладчике. Дополнительные сведения о синтаксисе условных точек останова см. в разделе "Настройка условной точки останова".