Как вы можете вызвать интерактивную отладку Perl с помощью hypnotoad или morbo?
Я новичок в mojolicious, но уже некоторое время использую Perl. Мне нужно прыгнуть через несколько обручей, но я могу заставить интерактивный отладчик Perl (и Komodo) работать с удаленными подключениями для Apache, но я не могу найти ничего об интерактивной отладке с помощью hypnotoad или morbo.
Примеры командной строки в базовом учебнике по http://mojolicio.us/perldoc/Mojolicious/Guides/Tutorial работают нормально, потому что вы можете запускать их с помощью perl -d, но я не вижу, как сказать Сценарий hypnotoadctl для перевода сервиса в интерактивный режим отладки ala apache.
Это не возможно? Советы? Подсказки? Указатели?
3 ответа
morbo
а также hypnotoad
программы Perl, поэтому вы можете запустить их с -d
переключатель.
perl -d $(which morbo) myMojoApp.pl
Вероятно, легче всего посыпать кучу $DB::single = 1
заявления вокруг вашего приложения, где вы хотите, чтобы ваши начальные точки останова идти и работать c
как первая команда отладчика. Когда вы запускаете запрос, который достигает точки останова, вы получаете приглашение отладчика в терминале, который запустил morbo
,
hypnotoad
будет сложнее использовать с отладчиком, потому что он быстро закрывает все стандартные файловые дескрипторы, вызовы fork
несколько раз, и становится демоном.
Как отмечает JHThorsen, стандартные тесты Mojolicious на самом деле являются обычными сценариями Perl, поэтому вы можете отлаживать свои тесты с помощью:
perl -d t/mytest.t
-Ilib
добавляет lib/
каталог в список включения @INC, чтобы ваши модули были загружены.
Одна загвоздка заключается в том, что многие модули не загружаются до времени выполнения, поэтому, если отладчик беспокоит вас по поводу символов, которые еще не загружены, вы, вероятно, захотите установить точки останова после принудительного ввода приглашения отладки с тщательно вставленными
$DB::single = 1;
Благодаря "pink_mist". Ты можешь сделать:
perl -d myMojoApp.pl daemon -l http://*:29849
Но конфигурация приложения не применяется. Я не знаю почему.