WikiDer > Отслеживание ветки

Branch trace

Отслеживание ветки это компьютерная программа отладка инструмент или методика анализа. Это сокращенная трассировка инструкции, в которой только успешные ответвляться инструкции записываются. На IBM System / 360 это было реализовано как часть Запись программы-события (PER)[1] но редко использовался на уровне программирования приложений. Было использовано оборудование для записи программных событий, и из-за накладных расходов, связанных с этим инструментом, оно было удалено из доступного для клиентов MVS системы.

Отслеживание ветвей также доступно для Pentium 4, Xeon и позже Процессоры Intel.[2] Существуют специальные команды процессора для включения трассировки ветвей и сохранения выполненных ветвей в специальной области Intel Branch Trace Store (BTS) резидентной памяти. Хранилище трассировки ветвей также можно настроить в качестве кольцевого буфера, чтобы записывать последние выполненные ветки. Трассировка ветвей на процессорах Intel с использованием Branch Trace Store может вызвать 40-кратное замедление времени выполнения приложения.[3] Для Intel Core M и 5-е поколение процессоров Intel, Intel PT (Processor Trace), целью которого является обеспечение полной трассировки потока управления. Утверждается, что Intel PT оказывает минимальное влияние на выполнение программы (<5%).[4]

Использовать

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

Альтернативы

Более полную трассировку всех инструкций (включая инструкции между ветвями) можно получить с помощью симулятор набора команд (где доступно на некоторых платформах). Полная трассировка инструкции может предоставить дополнительную информацию, такую ​​как адрес / длина и значение изменений памяти.

Смотрите также

Рекомендации

  1. ^ «Центр знаний IBM». publib.boulder.ibm.com.[постоянная мертвая ссылка]
  2. ^ IA-32 Руководство разработчика программного обеспечения по архитектуре Intel® (ftp://download.intel.com/support/processors/celeron/sb/6.pdf[постоянная мертвая ссылка]), Том 3B: Руководство по системному программированию, Часть 2, Глава 18.4 Обзор записи последней ветви.
  3. ^ Использование достижений оборудования для тестирования и отладки программного обеспечения (NIER Track)Мэри Лу Соффа, Кристен Р. Уолкотт, Джейсон Марс в Труды ICSE, 2011. См. Главу 4.2 Магазин трассировки ветвей.
  4. ^ Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32, См. Главу 35 Intel Processor Trace.

внешняя ссылка