В 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;
и отладчик остановится. Данная
команда не вызовет ошибку при
работе без отладчика.