tb (трассировка до следующей ветви)
Команда tb выполняет программу до достижения инструкции ветви.
tb [r] [= StartAddress] [Count]
Параметры
r
Включает и отключает отображение регистров и флагов. По умолчанию отображаются регистры и флаги. Вы можете отключить отображение регистрации с помощью команд tbr, pr, tr или .prompt_allow -reg. Все эти команды управляют тем же параметром, и вы можете использовать любой из них для переопределения любого предыдущего использования этих команд.
Вы также можете отключить отображение регистрации с помощью команды l-os. Этот параметр отличается от других четырех команд. Чтобы управлять отображением регистров и флагов, используйте команду rm (Register Mask).
StartAddress
Указывает адрес, в котором отладчик запускает выполнение. Если вы не используете StartAddress, выполнение начинается с инструкции, на которую указывает указатель инструкции. Дополнительные сведения о синтаксисе см. в разделе "Синтаксис адреса и диапазон адресов".
Считать
Указывает число разрешенных ветвей. При каждом обнаружении ветви адрес инструкции и инструкция отображаются. Если вы опустите число, значение по умолчанию равно 1.
Среда
Режимы |
x86: режим ядра только на основе x64: режим пользователя, режим ядра |
Целевые объекты |
Только динамическая отладка |
Платформы |
на основе x86 (семейство процессоров 6 и более поздних версий) на основе x64 |
Дополнительная информация
Дополнительные сведения о связанных командах см. в разделе "Управление целевым объектом".
Замечания
Команда tb приводит к началу выполнения целевого объекта. Это выполнение продолжается до достижения команды ветви.
Выполнение останавливается в любой команде ветви, которую необходимо выполнить. Эта остановка выполнения всегда основана на коде дизассембли , даже если отладчик находится в исходном режиме.
Инструкции ветви включают вызовы, возвраты, переходы, подсчитываемые циклы и циклы. Если отладчик встречает безусловную ветвь или условную ветвь, для которой условие имеет значение true, выполнение останавливается. Если отладчик обнаруживает условную ветвь, условие которой равно false, выполнение продолжается.
При остановке выполнения отображается адрес инструкции ветви и все связанные символы. За этой информацией следует стрелка, а затем адрес и инструкции нового расположения счетчика программ.
Команда tb работает только на текущем процессоре. Если вы используете тб в многопроцессорной системе, выполнение останавливается при достижении команды ветви или при возникновении события другого процессора, в зависимости от того, что происходит первым.
Обычно трассировка ветви включена после инициализации блока управления процессором (PRCB). (PRCB инициализирован в начале процесса загрузки.) Однако если перед этой точкой необходимо использовать команду tb, можно использовать .force_tb (принудительно разрешить трассировку ветви) для включения трассировки ветви ранее. Используйте команду .force_tb осторожно, так как она может повредить состояние процессора.