Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Breakpoint on warn or die in the debugger

by bikeNomad (Priest)
on Jul 14, 2001 at 23:04 UTC ( [id://96764]=CUFP: print w/replies, xml ) Need Help??

The Perl debuger is a wonderful tool. By setting its warnlevel or dielevel you can get it to print out a stack trace on a warn or a die. But what if you want to breakpoint on those events? This snippet (when put into a ./.perldb or ~/.perldb file) allows you to set breakpoints (after printing the warn/dielevel stack traces, if any) on these events. Just type sow to stop on warn, or sod to stop on die.

update: made it pass args to oldWarn/oldDie

# Stop on warn (sow) $DB::oldWarn = $SIG{__WARN__}; $DB::alias{sow} = 's/^sow/\$SIG{__WARN__} = sub { \$DB::oldWarn->(@_) +if (\$DB::oldWarn); \$DB::single = 1 }/'; # Stop on die (sod) $DB::oldDie = $SIG{__DIE__}; $DB::alias{sod} = 's/^sod/\$SIG{__DIE__} = sub { \$DB::oldDie->(@_) if + (\$DB::oldDie); \$DB::single = 1 }/';

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://96764]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2024-04-19 10:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found