Re: debuggers

2000-12-08 Thread Bruce W. Hoylman

 "Dave" == Dave Rolsky [EMAIL PROTECTED] writes:

Dave On Thu, 7 Dec 2000, martin langhoff wrote:
 I wonder how do those hardcore guys that develop using handlers
 debug.  Mhhh. They must write 'perlfect' code, I guess, and/or
 understand those cryptic debuggers ...

Dave I just do a lot of debugging via warn statements and looking
Dave at the error logs.

My BEGIN block looks like this.  I realize IO is rather bulky, but I
like it and the environment I'm in isn't *that* busy where it makes a
significant impact.

BEGIN {

  # Wash the PATH.
  $ENV{'PATH'} = '/opt/gnu/bin:/usr/local/bin:/usr/bin';
  $ENV{'CDPATH'} = '';
  $ENV{'ENV'} = '';

  use IO::File;
  use CGI::Carp qw(carpout fatalsToBrowser carp);
  use Savvy::Conf qw(:WWWBasic);

  my $log = 1;
  my $logfile = "/www/cgi-logs/cgi-log";

  if ($log) {
my $LOG = IO::File-new(" $logfile") or
  Savvy::Conf::cab("Unable to open $logfile for writing: $!\n");

# Dupe STDERR.  Original is SAVEERR.
carpout($LOG);
  }
}

Then I 'tail -f' the $logfile, the Apache server error_log, and watch
watever comes to the broswer due to the fatalsToBrowser.  Works well for
me.

The '$r-log_reason' finds a home in my code as well.

Plus, I *always* use '-w' and '-T' and get them cleanly working during
development phases, although I shut them off for actual deployment.

Peace.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Matt Sergeant

On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:

  "Dave" == Dave Rolsky [EMAIL PROTECTED] writes:

 Dave On Thu, 7 Dec 2000, martin langhoff wrote:
  I wonder how do those hardcore guys that develop using handlers
  debug.  Mhhh. They must write 'perlfect' code, I guess, and/or
  understand those cryptic debuggers ...

 Dave I just do a lot of debugging via warn statements and looking
 Dave at the error logs.

 My BEGIN block looks like this.  I realize IO is rather bulky, but I
 like it and the environment I'm in isn't *that* busy where it makes a
 significant impact.

 BEGIN {

   # Wash the PATH.
   $ENV{'PATH'} = '/opt/gnu/bin:/usr/local/bin:/usr/bin';
   $ENV{'CDPATH'} = '';
   $ENV{'ENV'} = '';

   use IO::File;
   use CGI::Carp qw(carpout fatalsToBrowser carp);
 ^^^

Bye bye exception handling.

-- 
Matt/

/||** Director and CTO **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** Personal Web Site: http://sergeant.org/ **
 \\//
 //\\
//  \\


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Stas Bekman

 Plus, I *always* use '-w' and '-T' and get them cleanly working during
 development phases, although I shut them off for actual deployment.

1. You cannot use -T under mod_perl, you should use PerlTaintCheck
instead: http://perl.apache.org/guide/porting.html#Taint_Mode

2. 'PerlTaintCheck On' is a must in production!!! not development:
* http://www.gunther.web66.com/FAQS/taintmode.html
* perldoc perlsec

_
Stas Bekman  JAm_pH --   Just Another mod_perl Hacker
http://stason.org/   mod_perl Guide  http://perl.apache.org/guide 
mailto:[EMAIL PROTECTED]   http://apachetoday.com http://logilune.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/  



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Vivek Khera

 "SB" == Stas Bekman [EMAIL PROTECTED] writes:

SB 2. 'PerlTaintCheck On' is a must in production!!! not development:

Huh?!?!?!?  It is a must always.  You can't develop without it and
then expect it to work with taint checking on at a later time.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Vivek Khera, Ph.D.Khera Communications, Inc.
Internet: [EMAIL PROTECTED]   Rockville, MD   +1-240-453-8497
AIM: vivekkhera Y!: vivek_khera   http://www.khera.org/~vivek/

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Stas Bekman

On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:

  "Matt" == Matt Sergeant [EMAIL PROTECTED] writes:
 
 Matt On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:
 
  use IO::File;
  use CGI::Carp qw(carpout fatalsToBrowser carp);
 Matt Bye bye exception handling.
 
 You mean eval{} block exception handling, or something else?  What are
 the technical specifics around this assertion?
 
 Thanks!  Maybe I'll learn something here, which is why I posted it in
 the first place.

http://perl.apache.org/guide/perl.html#Exception_Handling_for_mod_perl


_
Stas Bekman  JAm_pH --   Just Another mod_perl Hacker
http://stason.org/   mod_perl Guide  http://perl.apache.org/guide 
mailto:[EMAIL PROTECTED]   http://apachetoday.com http://logilune.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/  



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Bruce W. Hoylman

 "Stas" == Stas Bekman [EMAIL PROTECTED] writes:

 Plus, I *always* use '-w' and '-T' and get them cleanly working
 during development phases, although I shut them off for actual
 deployment.

Stas 1. You cannot use -T under mod_perl, you should use
StasPerlTaintCheck
Stas instead: http://perl.apache.org/guide/porting.html#Taint_Mode

This is what I was referring to actually.  However, there are many
modules, such as Date::Manip, for example, that just will not load with
taint checking turned on.  In an intranet, it's not as big a deal as it
certainly is in the 'real world'.

But what can I do, short of rewritting the parts of the module that
don't function in with checking on

Stas 2. 'PerlTaintCheck On' is a must in production!!! not
Stasdevelopment:
Stas * http://www.gunther.web66.com/FAQS/taintmode.html
Stas * perldoc perlsec

Thanks for the input.

Peace.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Matt Sergeant

On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:

  "Matt" == Matt Sergeant [EMAIL PROTECTED] writes:

 Matt On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:
 
  use IO::File;
  use CGI::Carp qw(carpout fatalsToBrowser carp);
 Matt Bye bye exception handling.

 You mean eval{} block exception handling, or something else?  What are
 the technical specifics around this assertion?

fatalsToBrowser installs a $SIG{__DIE__} handler, and so prevents you from
properly using eval{} blocks, or nice modules like Error.pm or
Class::Exception (or whichever way around Dave has it this week :-)

See my rant, erm, section in the guide on exception handling.

-- 
Matt/

/||** Director and CTO **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** Personal Web Site: http://sergeant.org/ **
 \\//
 //\\
//  \\


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Stas Bekman

On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:

  "Stas" == Stas Bekman [EMAIL PROTECTED] writes:
 
  Plus, I *always* use '-w' and '-T' and get them cleanly working
  during development phases, although I shut them off for actual
  deployment.
 
 Stas 1. You cannot use -T under mod_perl, you should use
 StasPerlTaintCheck
 Stas instead: http://perl.apache.org/guide/porting.html#Taint_Mode
 
 This is what I was referring to actually.  However, there are many
 modules, such as Date::Manip, for example, that just will not load with
 taint checking turned on.  In an intranet, it's not as big a deal as it
 certainly is in the 'real world'.

You should contact the author of the module and ask him to fix it. It's
possible that he doesn't aware of the taint issues. Usually for modules
that execute shell/fork but don't pass any tainted args, the fix is as
trivial as adding:

  $ENV{'PATH'} = '/bin:/usr/bin';
  delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};

(taken from perlsec manpage)

Hmm, may be we should find a way for modules to be taint checked before
these are allowed to CPAN? What do you think? sort of:

eval {`perl -cwT $_` for (*.pm) };


 But what can I do, short of rewritting the parts of the module that
 don't function in with checking on
 
 Stas 2. 'PerlTaintCheck On' is a must in production!!! not
 Stasdevelopment:
 Stas * http://www.gunther.web66.com/FAQS/taintmode.html
 Stas * perldoc perlsec
 
 Thanks for the input.

You are very welcome :)

 Peace.

Sex, drugs and rock-n-roll!


_
Stas Bekman  JAm_pH --   Just Another mod_perl Hacker
http://stason.org/   mod_perl Guide  http://perl.apache.org/guide 
mailto:[EMAIL PROTECTED]   http://apachetoday.com http://logilune.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/  



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Bruce W. Hoylman

 "Matt" == Matt Sergeant [EMAIL PROTECTED] writes:

Matt On Fri, 8 Dec 2000, Bruce W. Hoylman wrote:

 use IO::File;
 use CGI::Carp qw(carpout fatalsToBrowser carp);
Matt Bye bye exception handling.

You mean eval{} block exception handling, or something else?  What are
the technical specifics around this assertion?

Thanks!  Maybe I'll learn something here, which is why I posted it in
the first place.

Peace.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-08 Thread Dave Rolsky

On Fri, 8 Dec 2000, Matt Sergeant wrote:

 fatalsToBrowser installs a $SIG{__DIE__} handler, and so prevents you from
 properly using eval{} blocks, or nice modules like Error.pm or
 Class::Exception (or whichever way around Dave has it this week :-)

That's Exception::Class.  phhhbbtt!


-dave

/*==
www.urth.org
We await the New Sun
==*/


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread martin langhoff

Perrin,

In fact, I've always been coding from NT machines -- for my *nix
servers, of course. Now the ActiveState people are building a
cross-platform and cross-language IDE that integrates with perldebug
nicely -- or so it seems. I'm actually starting to like it -- it's built
on top of mozilla, so its a bit bloated and slow -- but I like it, just
like mozilla ;)

And, on top of that, it's called Komodo, and that means 'comfort' -- in
Spanish, that is. 

All this talk about DDD is making me wonder if there is a suitable
(graphical) Perl IDE that I can run on Gnome. If there's one, maybe I'll
change my dev workstation from an NT box to RHLinux 6.1 ... 

Well, there's Komodo, for instance ;)


martin
pd: of course, in Spanish you'd say cómodo -- with a stress on the first
o.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread Perrin Harkins

On Thu, 7 Dec 2000, martin langhoff wrote:
   All this talk about DDD is making me wonder if there is a suitable
 (graphical) Perl IDE that I can run on Gnome.

Last time I tried them, I found ptkdb a bit nicer than DDD, mostly because
DDD was kind of slow.  I don't know how easy it is to make it play with
mod_perl though.  Apache::Debug normally just dumps you into the shell
debugger.  Maybe setting an environment variable would do it.

- Perrin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread martin langhoff

Perrin Harkins wrote:
 
 I don't know how easy it is to make it play with
 mod_perl though.  Apache::Debug normally just dumps you into the shell
 debugger.  Maybe setting an environment variable would do it.
 

I've always considered mod_perl to be completely debugger-unfriendly.
That's why I write modules that I can test from a standard script, and
then call those modules from Embperl pages or Registry scripts. 

I wonder how do those hardcore guys that develop using handlers debug.
Mhhh. They must write 'perlfect' code, I guess, and/or understand those
cryptic debuggers ...



martin

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread Perrin Harkins

On Thu, 7 Dec 2000, martin langhoff wrote:
   I've always considered mod_perl to be completely debugger-unfriendly.
 That's why I write modules that I can test from a standard script, and
 then call those modules from Embperl pages or Registry scripts. 

Apache::Debug works.  It's almost exactly the same as debugging a standard
script.

   I wonder how do those hardcore guys that develop using handlers debug.
 Mhhh. They must write 'perlfect' code, I guess, and/or understand those
 cryptic debuggers ...

Do not be afraid of the command line...

The Perl debugging shell is really not so hard if you give it a chance.  
I've taught a number of people here how to use it.  I'm always amazed that
more people don't use tools like the debugger and the profiler.  They're
life savers.

- Perrin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread Matt Sergeant

On Thu, 7 Dec 2000, martin langhoff wrote:

 Perrin Harkins wrote:
 
  I don't know how easy it is to make it play with
  mod_perl though.  Apache::Debug normally just dumps you into the shell
  debugger.  Maybe setting an environment variable would do it.
 

   I've always considered mod_perl to be completely debugger-unfriendly.
 That's why I write modules that I can test from a standard script, and
 then call those modules from Embperl pages or Registry scripts.

   I wonder how do those hardcore guys that develop using handlers debug.
 Mhhh. They must write 'perlfect' code, I guess, and/or understand those
 cryptic debuggers ...

Personally I've always relied on sending debug messages to the log, and
then staring at the code for a few minutes/months.

-- 
Matt/

/||** Director and CTO **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** Personal Web Site: http://sergeant.org/ **
 \\//
 //\\
//  \\



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread Dave Rolsky

On Thu, 7 Dec 2000, martin langhoff wrote:

   I wonder how do those hardcore guys that develop using handlers debug.
 Mhhh. They must write 'perlfect' code, I guess, and/or understand those
 cryptic debuggers ...

I just do a lot of debugging via warn statements and looking at the error
logs.


-dave

/*==
www.urth.org
We await the New Sun
==*/


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread Jeremy Howard

martin langhoff wrote:
 I wonder how do those hardcore guys that develop using handlers debug.
 Mhhh. They must write 'perlfect' code, I guess, and/or understand those
 cryptic debuggers ...

Actually, debugging handlers is pretty easy. Just run httpd with the -X flag
to make it single process, and use Apache::DB to get mod_perl to run under
the debugger. Get Apache::DB from CPAN

  perl -MCPAN -e 'install Apache::DB'

and read its docs

  perldoc Apache::DB

When Apache hits your Perl code, you are dropped into the standard Perl
debugger. Although typing '?' at the debug prompt shows a bewildering array
of options, you can do a lot by knowing:

 n - Step over
 s - Step into
 x expr - Print the value of expr
 w - Show a few lines either side of the current one
 b sub - break at sub
 c - continue (stop debugging)
 c line# - continue, and break at line#

HTH,
  Jeremy



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: debuggers

2000-12-07 Thread clayton cottingham

Perrin Harkins wrote:
 
 On Thu, 7 Dec 2000, martin langhoff wrote:
I've always considered mod_perl to be completely debugger-unfriendly.
  That's why I write modules that I can test from a standard script, and
  then call those modules from Embperl pages or Registry scripts.
 
 Apache::Debug works.  It's almost exactly the same as debugging a standard
 script.
 
 

i got it running once on our dev box and then no go ever since then

but yes it is sweet!


   I wonder how do those hardcore guys that develop using handlers debug.
  Mhhh. They must write 'perlfect' code, I guess, and/or understand those
  cryptic debuggers ...
 
 Do not be afraid of the command line...
 
 The Perl debugging shell is really not so hard if you give it a chance.
 I've taught a number of people here how to use it.  I'm always amazed that
 more people don't use tools like the debugger and the profiler.  They're
 life savers.
 
 - Perrin
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]