Подтвердить что ты не робот

Могу ли я вставить точку прерывания в исходную программу perl?

Я хочу, чтобы программа отладки программы perl запускала какое-то условие. На каком-то другом языке есть аргумент debug(), поддерживаемый библиотекой, есть ли подобное утверждение в perl?

4b9b3361

Ответ 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 общаться с вами.

Подробнее