Отладка Perl программ
Отладка Perl программ.
В 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 не отслеживается отладчиком, но можно в теле конструктора указать:
- $DB::single =1;
и отладчик остановится. Данная команда не вызовет ошибку при работе без отладчика.