NAME
Apache::DB - Run the interactive Perl debugger under mod_perl
SYNOPSIS
<Location /perl>
PerlFixupHandler +Apache::DB
SetHandler perl-script
PerlHandler +Apache::Registry
Options +ExecCGI
</Location>
DESCRIPTION
Perl ships with a very useful interactive debugger, however, it does not run "out-of-the-box" in the Apache/mod_perl environment. Apache::DB makes a few adjustments so the two will cooperate.
FUNCTIONS
- init
-
This function initializes the Perl debugger hooks without actually starting the interactive debugger. In order to debug a certain piece of code, this function must be called before the code you wish debug is compiled. For example, if you want to insert debugging symbols into code that is compiled at server startup, but do not care to debug until request time, call this function from a PerlRequire'd file:
#where db.pl is simply: # use Apache::DB (); # Apache::DB->init; PerlRequire conf/db.pl #where modules are loaded PerlRequire conf/init.pl
If you are using mod_perl 2.0 you will need to use the following as your db.pl:
use Apache2; use APR::Pool (); use Apache::DB (); Apache::DB->init();
- handler
-
This function will start the interactive debugger. It will invoke Apache::DB::init if needed. Example configuration:
<Location /my-handler> PerlFixupHandler Apache::DB SetHandler perl-script PerlHandler My::handler </Location>
CAVEATS
- -X
-
The server must be started with the
-X
to use Apache::DB. - filename/line info
-
The filename of Apache::Registry scripts is not displayed.
SEE ALSO
perldebug(1)
AUTHOR
Originally written by Doug MacEachern
Currently maintained by Frank Wiles <frank@wiles.org>