stringtranslate.com

След ветви

Branch trace — это инструмент отладки компьютерных программ или метод анализа. Это сокращенная трассировка инструкций, в которой записываются только успешные инструкции ветвления . В IBM System/360 это было реализовано как часть Program-Event Recording (PER) [1] , но редко использовалось на уровне прикладного программирования. Использовалось аппаратное обеспечение Program Event Recording, и из-за накладных расходов этого инструмента оно было удалено из доступных клиентам систем MVS .

Трассировка ветвей также доступна для процессоров Pentium 4 , Xeon и более поздних процессоров Intel . [2] Существуют специальные команды процессора для включения трассировки ветвей и сохранения выполненных ветвей в специальной области Intel Branch Trace Store (BTS) резидентной памяти. Branch Trace Store также можно настроить как кольцевой буфер, чтобы записывать последние выполненные ветви. Трассировка ветвей на процессорах 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. ^ Руководство разработчика программного обеспечения для архитектуры Intel® IA-32 (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.

Внешние ссылки