繁体   English   中英

如何在 mod_perl 下启用 perl 调试器?

[英]How to enable perl debugger under mod_perl?

我想对我的代码进行非交互式调试。 代码在启用mod_perl2 httpd下运行。

根据官方文档,我可以这样做

% setenv PERL5OPT -d
% setenv PERLDB_OPTS "NonStop=1 LineInfo=db.out AutoTrace=1 frame=2"

据我所知,我需要使用PerlSetEnv将 apache setenv翻译成 apache2 配置的语言。 所以配置必须看起来像

<IfDefine MODPERL>
    LoadModule perl_module modules/mod_perl.so
    ...
    PerlSetEnv PERL5OPT -d
    PerlSetEnv PERLDB_OPTS NonStop
</IfDefine>

我尝试了这样的配置,但当我在上面包装一些代码时,STDERR 上没有输出

$DB::frame = 1;
# code
$DB::frame = 0;

我能错过什么?

PERLDB_OPTSPERL5OPT是完全正确的变量:

$ cat 1.pl 
#!/usr/bin/env perl
sub bar { foo() }
sub foo { }
sub hello {
$DB::frame=1; 
bar(); 
$DB::frame=0;
}
hello();
$ PERLDB_OPTS=NonStop PERL5OPT=-d perl 1.pl > /dev/null
   entering main::bar
    entering main::foo

这并没有为我工作:

PerlSetEnv PERL5OPT -d
PerlSetEnv PERLDB_OPTS NonStop

在 Apache/2.4.10 上这样做:

SetEnv PERL5OPT -d
SetEnv PERLDB_OPTS NonStop

默认情况下,为我输出到 /var/log/apache2/error.log :

...
[Fri Jun 21 14:43:51.886302 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:         entering DBD::_::common::install_method
[Fri Jun 21 14:43:51.886341 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:          entering DBI::_install_method
[Fri Jun 21 14:43:51.886385 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:         entering DBD::_::common::install_method
[Fri Jun 21 14:43:51.886425 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:          entering DBI::_install_method
[Fri Jun 21 14:43:51.886468 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:         entering DBD::_::common::install_method
[Fri Jun 21 14:43:51.886508 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:          entering DBI::_install_method
[Fri Jun 21 14:43:51.886784 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:       entering CODE(0x18904ff0)
[Fri Jun 21 14:43:51.886823 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:        entering DBI::dr::connect
[Fri Jun 21 14:43:51.886862 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:         entering DBD::Pg::dr::connect
[Fri Jun 21 14:43:51.886899 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:          entering DBI::_new_dbh
[Fri Jun 21 14:43:51.886943 2019] [cgi:error] [pid 24014] [client 127.0.0.1:48278] AH01215:           entering DBI::_new_handle
...

祝你好运 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM