[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Omaha.pm] debugger - $DB::single = 1;
Oh, cool...
Catalyst just introduced me to
$DB::single = 1;
If you throw that statement in your code then run your program under
the debugger and hit "c" to continue, the debugger will stop on the
next line.
Under some circumstances this might be more convenient than the way I
normally set breakpoints: via a .perldb file:
===============
$ cat .perldb
sub afterinit {
my $lib = "/Library/Perl/5.8.6";
push @DB::typeahead,
"f $lib/Control/Rates/Avail.pm", "b 189",
}
===============
While developing web apps under Catalyst $DB::single is really handy.
You can launch your Catalyst server via the debugger, hit "c", and
then use your browser to click around in your application just like
normal. This way the browser keeps doing all its magical javascript /
cookie stuff, and your server stops right after $DB::single so you
can start debugging right there in real-time.
Since I'm still learning the Catalyst framework, this is HUGE for me,
since I'm still feeling my way through the framework. :) Yes, I
could still use .perldb to accomplish the same things, but I'm still
fumbling through Catalyst namespaces, so $DB::single is awesomely
lazy. :)
j
Catalyst:
http://catalyst.perl.org/
More info on $DB::single:
http://search.cpan.org/~nwclark/perl-5.8.8/pod/
perldebug.pod#Debugging_compile-time_statements