Я хочу, чтобы программа отладки программы perl запускала какое-то условие. На каком-то другом языке есть аргумент debug(), поддерживаемый библиотекой, есть ли подобное утверждение в perl?
Могу ли я вставить точку прерывания в исходную программу perl?
Ответ 1
Вы пытались добавить ключ -d в строку shebang в верхней части вашего script? Что-то вроде
#!/usr/bin/perl -d
use strict;
use warnings;
$|=1;$\="\n";
print "Test";
Это действительно зависит от того, как он запускается, но, по крайней мере, в простых случаях это должно запустить отладчик.
Изменить: Затем вы можете установить точку останова на определенной строке с определенным условием, используя
> b [line] [condition]
и нажмите
> c
для продолжения работы script - отладчик остановится в указанной строке при выполнении условия
Ответ 2
Если вы правильно поняли, вам нужно использовать определенную переменную отладчика в вашем коде - $DB::single
. Установка этого значения в истинное значение в коде приведет к тому, что отладчик остановится на этой строке.
$x = 1234;
$DB::single = 1;
enter_problematic_sub_now();
Затем ваш код остановится в строке с $DB:: single set до 1.
Конечно, если вы действительно не можете убедиться, что ваш код запущен в отладчике, тогда у вас есть еще одна проблема. Вам также нужно будет запустить код через perl -d
.
Ответ 3
Ну, есть что-то, что позволит вам сделать что-то вроде контрольных точек, но функциональность шире: Perl Debugger.
Ответ 4
По существу, переключатель
-d
позволяет вам связываться с исполняемым файлом perl и позволяет исполняемому файлу perl общаться с вами.