Трассировка ветвей
Трассировка ветвей — это или метод анализа компьютерных программ инструмент . Это сокращенная трассировка инструкций, в которой успешного перехода записываются только команды . В 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]
Использовать
[ редактировать ]При наличии и ссылке на листинг компилятора программы вместе со трассировкой ветвления можно восстановить полный путь выполняемых инструкций. Приложив гораздо больше усилий, полный путь можно даже восстановить с помощью дампа памяти (содержащего хранилище программ) и трассировки ветвей.
Альтернативы
[ редактировать ]Более полную трассировку всех инструкций (включая инструкции между ветвями) можно получить с помощью симулятора набора команд (если он доступен на некоторых платформах). Полная трассировка инструкций может предоставить дополнительную информацию, такую как адрес/длина и значение изменений памяти.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Центр знаний IBM» . publib.boulder.ibm.com . [ постоянная мертвая ссылка ]
- ^ IA-32 Архитектура Intel® Руководство разработчика программного обеспечения ( ftp://download.intel.com/support/processors/celeron/sb/6.pdf [ постоянная мертвая ссылка ] ), Том 3B: Руководство по системному программированию, Часть 2, Глава 18.4 Обзор записи последней ветки.
- ^ Использование достижений аппаратного обеспечения для тестирования и отладки программного обеспечения (NIER Track) , Мэри Лу Соффа, Кристен Р. Уолкотт, Джейсон Марс, в Трудах ICSE , 2011. См. главу 4.2 Хранилище трассировки ветвей.
- ^ Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32 , см. главу 35 «Трассировка процессора Intel».
Внешние ссылки
[ редактировать ]- Представляем новый трассировщик ветвей «perf Branch» от Акихиро Нагаи.