В Перл реализован превосходный механизм отладки программ. Вам достаточно запустить программу с ключом '-d' и вы начнете работать с интерактивным отладчиком. Вам становятся доступны все переменные и массивы, вы можете вводить выражения и операторы, трассировать, исследовать работу программы в по-шаговом режиме и многое другое. Ниже перечисленны команды отладчика которые вы можете вводить на его подсказку.
Команды отладчика.
| h | Получить справку по командам |
| T | Просмотреть стек программы |
| s | Выполнить одну команду и остановиться |
| n | Выполнить подпрограмму и остановиться |
| r | Выполнить текущую подпрограмму и остановиться |
| c | Продолжить выполнение до сдедующей точки остановки |
| c номер | Продолжить выполнение до строки с данным номером |
| <CR> | Повторить последнию команду 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 строка команда | Установить актив (команду которая выполнится вместе с указанной строкой. "команда" - обычныая команда Перл |
| A | Стереть все активы |
| < команда | Выполнять команду перед каждой остановкой |
| > команда | Выполнить команду после остановки отладчика |
| V модуль [имена] | Вывести значение всех или указанных имен в модуле. Внимание! Символ '$' не вводится |
| X [имена] | То же что и V , но только для текущего модуля |
| ! номер | Выполнить одну строку программ |
| ! -номер | Выполнить одну команду с номером предшествующим текущей строке |
| H - n | Вывести n последних выполненных команд |
| q или ^D | Выход из программы |
| команда | Выполнить команду Перл |
| p выражение | Вывести значение выражения |
Конструктор BEGIN не отслеживается отладчиком, но можно в теле конструктора указать:
$DB::single =1;
и отладчик остановится. Данная команда не вызовет ошибку при работе без отладчика.
Навигация