Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
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 ( #96764=snippet: print w/ replies, xml ) Need Help??

Description: 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 }/';
Comment on Breakpoint on warn or die in the debugger
Download Code

Back to Snippets Section

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (18)
As of 2014-04-18 19:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (471 votes), past polls