1

I'm playing around Apache::DB to debug my code under mod_perl. I can have it running and see the variables, but I cannot see the line of code with the instruction that is going to be executed (even if the file pathname and line number printed apart seem right). This happens only for my code, as all the mod_perl handlers are managed correctly.

It should be the same problem

stackoverflow.com/questions/7584931/mod-perl-debugging-viewing-source

but as it was not solved I open it again, adding more data.

I have cut the problem a piece at a time, and now I have the most simple configuration which can still reproduce the problem. I reduced the httpd.conf file to only 35 lines (45 are just LoadModule directives) preserving the test case.

The servers I must work on have the below versions for APACHE/MOD_PERL/PERL.

I guess Apache::DB can do what I cannot grab it out, but I've no clear idea on what is the missing step.

Thank you for any help.

______________________________________ DUMMY SCRIPT TO DEBUG
#!/usr/bin/perl
my $a=2;
print "Content-type: text/plain\n\n";
print "$a, $ENV{MOD_PERL}\n";
______________________________________ APACHE version

>httpd -v
Server version: Apache/2.2.8 (Unix)
Server built:   Feb 26 2009 22:38:17
______________________________________ MOD_PERL version

MOD_PERL => mod_perl/2.0.2
______________________________________ PERL version

>perl -v
This is perl, v5.8.5 built for i386-linux-thread-multi

execute Apache without forking

/usr/sbin/httpd  -X -DPERLDB -f /home/stef/simple.httpd.conf

simple.httpd.conf:

1 ServerRoot "/etc/httpd"
2 PidFile /tmp/stef.pid
3 Listen 192.168.60.201:4012
4 LoadModule access_module modules/mod_access.so
5 LoadModule auth_module modules/mod_auth.so
6 LoadModule auth_anon_module modules/mod_auth_anon.so
7 LoadModule auth_dbm_module modules/mod_auth_dbm.so
8 LoadModule auth_digest_module modules/mod_auth_digest.so
9 LoadModule ldap_module modules/mod_ldap.so
10 LoadModule auth_ldap_module modules/mod_auth_ldap.so
11 LoadModule include_module modules/mod_include.so
12 LoadModule log_config_module modules/mod_log_config.so
13 LoadModule env_module modules/mod_env.so
14 LoadModule mime_magic_module modules/mod_mime_magic.so
15 LoadModule cern_meta_module modules/mod_cern_meta.so
16 LoadModule expires_module modules/mod_expires.so
17 LoadModule deflate_module modules/mod_deflate.so
18 LoadModule headers_module modules/mod_headers.so
19 LoadModule usertrack_module modules/mod_usertrack.so
20 LoadModule setenvif_module modules/mod_setenvif.so
21 LoadModule mime_module modules/mod_mime.so
22 LoadModule dav_module modules/mod_dav.so
23 LoadModule status_module modules/mod_status.so
24 LoadModule autoindex_module modules/mod_autoindex.so
25 LoadModule asis_module modules/mod_asis.so
26 LoadModule info_module modules/mod_info.so
27 LoadModule dav_fs_module modules/mod_dav_fs.so
28 LoadModule vhost_alias_module modules/mod_vhost_alias.so
29 LoadModule negotiation_module modules/mod_negotiation.so
30 LoadModule dir_module modules/mod_dir.so
31 LoadModule imap_module modules/mod_imap.so
32 LoadModule actions_module modules/mod_actions.so
33 LoadModule speling_module modules/mod_speling.so
34 LoadModule userdir_module modules/mod_userdir.so
35 LoadModule alias_module modules/mod_alias.so
36 LoadModule rewrite_module modules/mod_rewrite.so
37 LoadModule proxy_module modules/mod_proxy.so
38 LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
39 LoadModule proxy_http_module modules/mod_proxy_http.so
40 LoadModule proxy_connect_module modules/mod_proxy_connect.so
41 LoadModule cache_module modules/mod_cache.so
42 LoadModule suexec_module modules/mod_suexec.so
43 LoadModule disk_cache_module modules/mod_disk_cache.so
44 LoadModule file_cache_module modules/mod_file_cache.so
45 LoadModule mem_cache_module modules/mod_mem_cache.so
46 LoadModule cgi_module modules/mod_cgi.so
47 LoadModule apreq_module modules/mod_apreq2.so
48 LoadModule perl_module modules/mod_perl.so
49 <VirtualHost *:4012>
50   DocumentRoot /home/stef/TEST/
51   <IfDefine PERLDB>
52     <Perl>
53         #!/usr/bin/perl
54         use APR::Pool ();
55         use Apache::DB ();
56         Apache::DB->init();
57         __END__
58     </Perl>
59   </IfDefine>
60   <Directory "/home/stef/TEST/APACHE/code">
61        Options FollowSymLinks +ExecCGI Indexes
62        SetHandler perl-script
63        PerlHandler ModPerl::PerlRun
64        PerlSendHeader On
65        PerlSetupEnv On
66          <IfDefine PERLDB>
67                  PerlFixupHandler Apache::DB
68          </IfDefine>
69     Order allow,deny
70     Allow from all
71   </Directory>
72 </VirtualHost>
73 User stef
74 Group devel
75 ServerName ik2ss10.internal:4012
76 TypesConfig /etc/mime.types
77 ErrorLog /var/log/httpd/stef_error_log
78 LogLevel warn
79 CustomLog /var/log/httpd/stef_access_log combined
80 NameVirtualHost *:4012

______________________________________ DEBUGGER SESSION

DB<4>
ModPerl::RegistryCooker::run(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/ModPerl/RegistryCooker.pm:203):
203:            eval { $cv->($r, @_) };
DB<4> s
ModPerl::RegistryCooker::run(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/ModPerl/RegistryCooker.pm:203):
203:            eval { $cv->($r, @_) };
DB<4>
ModPerl::ROOT::ModPerl::PerlRun::home_stef_TEST_APACHE_code_test_2epl::handler((eval 29)[/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/ModPerl/RegistryCooker.pm:676]:1):
1:      package ModPerl::ROOT::ModPerl::PerlRun::home_stef_TEST_APACHE_code_test_2epl;sub handler {local $0 = '/home/stef/TEST/APACHE/code/test.pl';
DB<4> l
1==>    package ModPerl::ROOT::ModPerl::PerlRun::home_stef_TEST_APACHE_code_test_2epl;sub handler {local $0 = '/home/stef/TEST/APACHE/code/test.pl';
2       #line 1 /home/stef/TEST/APACHE/code/test.pl
3       #!/usr/bin/perl
4       my $a=2;
5       print "Content-type: text/plain\n\n";
6       print "$a, $ENV{MOD_PERL}\n";
7
8       }
9       ;
DB<4> n
ModPerl::ROOT::ModPerl::PerlRun::home_stef_TEST_APACHE_code_test_2epl::handler(/home/stef/TEST/APACHE/code/test.pl:2):
2:
DB<4> n
ModPerl::ROOT::ModPerl::PerlRun::home_stef_TEST_APACHE_code_test_2epl::handler(/home/stef/TEST/APACHE/code/test.pl:3):
3:
DB<4> p $a
2
DB<5> p $ENV{MOD_PERL}
mod_perl/2.0.2
DB<6> n
ModPerl::ROOT::ModPerl::PerlRun::home_stef_TEST_APACHE_code_test_2epl::handler(/home/stef/TEST/APACHE/code/test.pl:4):
4:
DB<6> n
ModPerl::RegistryCooker::run(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/ModPerl/RegistryCooker.pm:206):
206:            $rc = $self->error_check;
Community
  • 1
  • 1
stef.ch
  • 11
  • 2

0 Answers0