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


tb (трассировка в следующую ветвь)

Команда tb выполняет программу до тех пор, пока не будет достигнута инструкция ветви.

tb [r] [= StartAddress] [Count] 

Параметры

R
Включает и отключает отображение регистров и флагов. По умолчанию отображаются регистры и флаги. Отображение регистрации можно отключить с помощью команд tbr, pr, tr или .prompt_allow -reg. Все эти команды управляют одинаковыми параметрами, и вы можете использовать любую из них, чтобы переопределить любое предыдущее использование этих команд.

Вы также можете отключить отображение регистрации с помощью команды l-os. Этот параметр отличается от других четырех команд. Чтобы указать, какие регистры и флаги отображаются, используйте команду rm (Маска регистрации).

StartAddress
Указывает адрес, с которого начинается выполнение отладчика. Если вы не используете StartAddress, выполнение начинается с инструкции, на которую указывает указатель инструкции. Дополнительные сведения о синтаксисе см. в разделе Синтаксис адресов и диапазонов адресов.

Рассчитывать
Указывает допустимое количество ветвей. При каждом обнаружении ветви отображаются адрес инструкции и инструкция. Если опустить значение Count, по умолчанию используется число 1.

Среда

Режимы

На базе x86: Только в режиме ядра x64: пользовательский режим, режим ядра

Целевые объекты

Только динамическая отладка

Платформы

x86 (семейство процессоров GenuineIntel 6 и более поздние версии), x64

Дополнительные сведения

Дополнительные сведения о связанных командах см. в разделе Управление целевым объектом.

Комментарии

Команда tb приводит к началу выполнения целевого объекта. Это выполнение продолжается до тех пор, пока не будет достигнута команда ветви.

Выполнение останавливается в любой команде ветви, которая должна быть выполнена. Такая остановка выполнения всегда основана на коде дизассемблирования , даже если отладчик находится в исходном режиме.

Инструкции ветви включают вызовы, возвраты, переходы, подсчитываемые циклы и циклы while. Если отладчик обнаруживает безусловную ветвь или условную ветвь, для которой условие равно true, выполнение останавливается. Если отладчик обнаруживает условную ветвь, условие которой равно false, выполнение продолжается.

Когда выполнение останавливается, отображается адрес инструкции ветви и все связанные с ней символы. За этой информацией следует стрелка, а затем адрес и инструкции нового расположения счетчика программы.

Команда tb работает только на текущем процессоре. Если вы используете tb в многопроцессорной системе, выполнение останавливается при достижении команды ветви или при возникновении события другого процессора в зависимости от того, что произойдет первым.

Обычно трассировка ветвей включается после инициализации блока управления процессором (PRCB). (PRCB инициализируется в начале процесса загрузки.) Однако если до этого момента необходимо использовать команду tb , можно использовать .force_tb (Принудительное разрешение трассировки ветвей) для включения трассировки ветвей ранее. Используйте команду .force_tb осторожно, так как это может привести к повреждению состояния процессора.