В Perl реализован превосходный механизм
отладки программ. Вам достаточно запустить программу с ключом '-d'
и вы начнете работать с интерактивным отладчиком. Вам становятся доступны
все переменные и массивы, вы можете вводить выражения и операторы,
трассировать, исследовать работу программы в пошаговом режиме и многое
другое. Ниже перечислены команды отладчика которые вы можете вводить
на его подсказку.
Команды отладчика.
- h - Получить справку по командам.
- T - Просмотреть стек программы
- s - Выполнить одну команду и остановиться.
- n - Выполнить подпрограмму и остановиться.
- r - Выполнить текущую подпрограмму и
остановиться.
- c - Продолжить выполнение до следующей
точки остановки.
- c номер - Продолжить выполнение до строки
с данным номером.
- - Повторить последнюю команду n
или s.
- l min+incr - Вывести incr+1 строк программы
начиная со строки min.
- l min-max - Вывести строки начиная с
min до max.
- l номер - Вывести строку с указанным
номером.
- l - Вывести следующий экран строк.
- - - Вывести предыдущий экран строк.
- w строк - Вывести экран строк. Текущая
в середине.
- l подпрограмма - Вывести строки указанной
подпрограммы.
- /шаблон/ - Найти строку в тексте программы.
- ?шаблон? - Обратный поиск строки в тексте
программы.
- L - Вывести строки с точками останова
и активами.
- S - Вывести имена всех подпрограмм.
- t - Включить или выключить трассировку.
- b строка [ условие] - Установить точку
остановки.
- b подпрограмма [ условие ] - Установить
точку остановки в начале указанной подпрограммы и если указано
при данном условии.
- d - Убрать точку остановки.
- D - Убрать все точки остановки.
- a строка команда - Установить актив (команду
которая выполнится вместе с указанной строкой. "команда" - обычная
команда Perl.
- A - Стереть все активы.
- < команда - Выполнять команду перед каждой
остановкой.
- > команда - Выполнить команду после остановки
отладчика.
- V модуль [имена] - Вывести значение всех
или указанных имен в модуле. Внимание! Символ
'$' не вводится.
- X [имена] - То же что и V , но только
для текущего модуля.
- ! номер - Выполнить одну строку программы.
- ! -номер - Выполнить одну команду с номером
предшествующим текущей строке.
- H - n - Вывести n последних выполненных
команд.
- q или ^D - Выход из программы.
- команда - Выполнить команду Perl.
- p выражение - Вывести значение выражения.
Конструктор BEGIN не отслеживается
отладчиком, но можно в теле конструктора указать:
и отладчик остановится. Данная команда не вызовет
ошибку при работе без отладчика.