It does look odd. Maybe you are still loading some code before calling Apache::DB->init(). Can you post your httpd.conf, or at least the mod_perl part of it?

.... start of mod_perl configuration ...

   <Perl>
       use lib '/i4u/web/elres-mp';
#        require Apache::DB;
#        Apache::DB->init;
   </Perl>
   PerlRequire /i4u/web/elres-mp/etc/startup.pl

   PerlModule Apache::DProf

   PerlModule ELRes::ELRes
   PerlModule ELRes::ApacheHandler
   PerlTransHandler ELRes::ApacheHandler->trans_handler
   PerlLogHandler ELRes::ApacheHandler->log_handler
   PerlCleanupHandler ELRes::ApacheHandler->cleanup_handler

... end mod_perl configuration ...

the startup.pl script loads and require's all modules under ELRes:: namespace on startup time, as suggested in mod_perl documentation...

eval { $app->run }; if ($@) { $r->log_error("Server error: $@"); $app->send_error(err => $@); }

That's why I think you are loading some code before initializing the debugger -- when it doesn't know about those other subs, they don't show up in the profile.

the object that $app refer to is dynamically decided based on the hostname, for example:

a.example.com   ---> $app = ELRes::Property->new()
b.example.com   ---> $app = ELRes::Property->new()
c.example.com   ---> $app = ELRes::Distributor->new()

both ELRes::Property and ELRes::Distributor are children of ELRes::TopLevelEntity and have run() method...

does this prevents the debugger to know which subroutine should be profiled? all the test that I've done is on the hostname whose object is of class ELRes::Property...

Anyway,

Hmmm... Where can I learn more about the debugger?

I didn't know profiling needs debugger, not until I was told about it in this mailinglist...

Cheers...

---
Badai Aqrandista
Cheepy (?)

_________________________________________________________________
SEEK: Over 80,000 jobs across all industries at Australia's #1 job site. http://ninemsn.seek.com.au?hotmail

Reply via email to