Я недавно начал работу над проектом, который использует mod_perl. Я пытаюсь использовать отладчик Perl для отладки некоторых сценариев Perl, работающих под mod_perl. Я запускаю отладчик с помощью следующей команды:
sudo OPTIONS="-X -DPERLDB" /etc/init.d/httpd restart
Соответствующий раздел отладки perl.conf (входит в httpd.conf):
<IfDefine PERLDB>
<Perl>
use Apache::DB ();
Apache::DB->init;
</Perl>
<Location />
PerlFixupHandler Apache::DB
</Location>
</IfDefine>
Это берет меня в отладчик. Когда я загружаю нужную страницу в браузер, отладчик разрывается на первую строку скрипта Perl, который был упакован mod_perl (приложение использует PerlRun, кстати). Теперь я могу просмотреть код, вывести переменные и т. Д.
Моя проблема в том, что команды для просмотра исходного кода (l
, -
и v
) не отображают ничего внутри скрипта Perl. Они работают как положено внутри модуля - то есть, если код входит в модуль, который используется сценарием Perl, команды представления исходного кода работают.
Это известная проблема с отладкой в mod_perl? Что я могу сделать, чтобы это исправить?
Я использую Apache 2.2.3 и Perl 5.8.8 в CentOS 5.6 x86_64.