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

Как установить точку останова в определенном файле в программе Perl?

Моя программа Perl выглядит так:

foo/
foo/bar/
for/bar/test.pm
foo.pm
foo/bar.pm
test.pl

и используйте perl test.pl для запуска программы. Я хочу отлаживать sub в foo/bar/test.pm. Как установить точку останова на этом суб?

Как я могу это сделать?

Спасибо.

4b9b3361

Ответ 1

Чтобы отладить perl script, используйте переключатель -d для вызова отладчика.

perl -d test.pl

В отладчике вы можете использовать b <line no> для установки точки останова в текущем файле. Иногда бывает сложно установить точку останова в файле, который еще не загружен или который был загружен давно, поэтому вы также можете поместить строку

$DB::single = 1;

где угодно в любой программе perl, и отладчик будет разорваться сразу же после выполнения этой строки. Это также хороший способ (единственный способ?) Установить точку останова в коде, который будет запущен во время компиляции.

Ответ 2

Просто используйте полное имя sub в качестве аргумента b:

b foo::bar::test::subname

Пример:

$ perl -d -e'use CGI; CGI->new'
...
main::(-e:1):   use CGI; CGI->new
  DB<1> b CGI::new
  DB<2> r
CGI::new(.../CGI.pm:337):
337:      my($class,@initializer) = @_;
  DB<2> q