osunderdog has asked for the wisdom of the Perl Monks concerning the following question:

I was recently bequeathed a CGI portal system that I now must make modifications and enhancements. In order to quickly dive in and understand the system, I would like to fire up the debugger on the CGI. In the past I have done this with Devel::ptkdb. However in my current environemnt, ptkdb is not available.

From my reading in perl5db.pl, I'm pretty sure that it's possible to use the default debugger to transmit over TCP using the RemotePort option. However I'm stuck on what the other end of that connection would be. I would rather keep it as simple as possible.

Any suggestions would be appreciated.

Hazah! I'm Employed!

Replies are listed 'Best First'.
Re: remote debugging perl cgi
by rinceWind (Monsignor) on Sep 14, 2005 at 13:22 UTC
    However in my current environemnt, ptkdb is not available.

    Is that because you don't have control of which perl modules are on the box that is running the webserver? Because that would severely limit things.

    You should be able to get Devel::ptkdb to crank up an X window onto a different machine if you repoint $ENV{DISPLAY}, but maybe you don't have X window transport between the two machines.

    Consider running your CGI script interactively, passing in any form variables from the command line. CGI.pm will pick them up, or will prompt interactively for a list of key=value lines.

    If you have access to the webserver logs, you might also be able to use Devel::Trace to get a list of the lines executed. Or you could use Log::Log4perl and pepper the source with logging statements.

    You might also like to try acme's Devel::ebug, relatively hot off the press, and he would welcome feedback, bug reports, patches etc.

    Hope this helps

    --

    Oh Lord, won’t you burn me a Knoppix CD ?
    My friends all rate Windows, I must disagree.
    Your powers of persuasion will set them all free,
    So oh Lord, won’t you burn me a Knoppix CD ?
    (Missquoting Janis Joplin)