Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Strategies for using the debugger with complex applications

0 views
Skip to first unread message

Andrew Brosnan

unread,
Nov 28, 2009, 4:05:35 PM11/28/09
to debu...@perl.org
Hello,

I'm curious about the strategies that others use for running more
complex applications in the debugger. A content management system for
example might require session data and user input in order to run it's
code, all of which gets processed along a journey through a large
stack. How can I do 'something' in a browser and then run that same
request in the debugger?

I see that Apache::DB does something similar where you can initiate a
request in a browser and then control it in the debugger. But what if
the app is not running mod_perl?

Thanks
Andrew

Jan Ploski

unread,
Nov 28, 2009, 7:42:31 PM11/28/09
to debu...@perl.org
Hi Andrew,

One way to cope with the task you described is to use a debugger
frontend such as EPIC. It allows you to set all the breakpoints
in source files beforehand in the IDE, then it takes care of
actually inserting those breakpoints at runtime whenever the right
.pm files are loaded. It also includes an embedded web server through
which the CGI scripts are executed (with the -d flag and PERLDB_OPTS
set up to make them call back the IDE).

It is also possible to execute CGI scripts in the real web server
and call back EPIC in a "remote debugging" configuration, but this
would require some trickier configuration. Generally, I only use
the debugger in a development environment, where the requirement
of letting all requests go through a custom web server is not
a big problem.

The usual scenario is to start this web server (or, as it is called
in Eclipse, a "debug launch configuration"), then issue the required
user interactions in the browser to reach the interesting state,
finally enable some breakpoints in the source code and repeat the
problematic request from the browser to make the debugger suspend.

Regards,
Jan Ploski

Peter Scott

unread,
Dec 3, 2009, 10:48:17 AM12/3/09
to debu...@perl.org

If the program is a CGI then you can wrap it such that it runs ptkdb and
remotes the debugger display to your screen via X. Then you invoke it
form a browser and the debugger runs on the server invocation itself.
Look up ptkdb documentation.

--
Peter Scott
http://www.perlmedic.com/
http://www.perldebugged.com/
http://www.informit.com/store/product.aspx?isbn=0137001274

Andrew Brosnan

unread,
Dec 3, 2009, 3:28:39 PM12/3/09
to Peter Scott, debu...@perl.org
Worked like a charm Peter. Thank you so much!
0 new messages