как установить точку останова в конкретном файле, используя 'perl -d' - PullRequest
0 голосов
/ 09 января 2019

Я использовал следующую команду для отладки программы.

perl -d -I "./Dev/lib/" -I "./TestCases/Dev/" ./Dev/bin/mytest.pl

Я хочу использовать perl -d для отладки mytest.pl, и есть много * .pm файлов. Я хочу использовать «f * .pm», чтобы загрузить этот файл pm и установить разрыв в этом файле pm, но он показывает «Нет соответствия файла». Я даю полный путь к этому файлу в личку, и путь точно существует.

DB<4> f /automation_code/TestCases/Tests/Dev/testcase1.pm

No file matching '/automation_code/TestCases/Tests/Dev/testcase1.pm' is loaded.

Но если я укажу путь, составленный ./Dev/bin, он будет успешно загружен.

DB<2> f /automation_code/Dev/bin/../lib/Setup.pm



DB<3> f /automation_code/Dev/lib/Setup.pm

No file matching '/automation_code/Dev/lib/Setup.pm' is loaded.

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Если ваш фреймворк пытается эмулировать объектно-ориентированный подход и в качестве пакета используется файл perl, то вы можете попробовать опцию ниже:

DB<1> use <package_name_of_file>
DB<2> b <package_name_of_file>::sub_routine_where_you_want_to_break

Это сработало для меня, когда b postpone и f <file_name> не работали для отладки подпрограммы, которая должна была быть загружена гораздо позже.

0 голосов
/ 09 января 2019

Вы можете просмотреть все файлы, загруженные в вашу программу, с помощью команды

x values %INC

Редактировать

Команда b в отладчике принимает несколько параметров.

  • b load *filename* разрывается при загрузке файла
  • b compile *subname* прерывается при компиляции подпрограммы
  • b postpone *subname* установит точку останова для подпрограммы, которая в данный момент не существует.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...