Программы отладки. Часть 1.

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

Основной отладочной программой является ODT, позволяющая отлаживать программы, подготовленные на Макроассемблере и ПЛ/П. Для работы с ODT необходим листинг и карта загрузки. При этом возможна корректировка любого участка программы команд и переменных. Можно использовать ODT для отладки Фортран-программ; при этом обеспечивается доступ (для контроля и изменения) к переменным программы. Отладочная программа TODT в дополнение к интерактивным средствам ODT позволяет получить трассировочный листинг, ее можно использовать в пакетном режиме.

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

Программа ODT. Предварительно прикомпоновывается к отлаживаемой программе либо загружается в память наряду с ней (директивой GET в ФОДОС), затем управление передается ей. Она позволяет:

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

Программа ODT может быть использована для отладки Фортран-программ. Для этого необходим листинг объектного модуля, включающий в себя мнемонику машинных программ; этот листинг выдается компилятором Фортрана при использовании соответствующего ключа. Из карты загрузки может быть получен начальный адрес р-секции, соответствующий программному коду (секция ¤CODE), и адрес секции переменных и массивов (секция ¤DATA). По листингам объектного кода и данных можно получить доступ к программе. Известная сложность возникает при доступе к переменным подпрограммы, которые находятся в секции ¤DATA вместе с переменными главной программы и других подпрограмм. Для определения начального адреса переменных подпрограммы внутри секции ¤DATA может быть использована цепочка: третье слово от начала подпрограммы (n÷4) содержит адрес описателя подпрограммы т; четвертое слово описателя (m+6) — начальный адрес раздела переменных подпрограммы внутри секции ¤DATA.