X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fassert.pl;h=4c9ebf20a0d3822b7f921478a88cd5fbfbbaf065;hb=4f87fa576f174a31e6d8fdb08cae76e644395db0;hp=0661d70af535847cf2e2aa78db48275acbf46ae7;hpb=79072805bf63abe5b5978b5928ab00d360ea3e7f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/assert.pl b/lib/assert.pl index 0661d70..4c9ebf2 100644 --- a/lib/assert.pl +++ b/lib/assert.pl @@ -16,6 +16,8 @@ sub assert { } sub panic { + package DB; + select(STDERR); print "\npanic: @_\n"; @@ -24,10 +26,11 @@ sub panic { # stack traceback gratefully borrowed from perl debugger - local($i,$_); - local($p,$f,$l,$s,$h,$a,@a,@sub); + local $_; + my $i; + my ($p,$f,$l,$s,$h,$a,@a,@frames); for ($i = 0; ($p,$f,$l,$s,$h,$w) = caller($i); $i++) { - @a = @DB'args; + @a = @args; for (@a) { if (/^StB\000/ && length($_) == length($_main{'_main'})) { $_ = sprintf("%s",$_); @@ -41,10 +44,10 @@ sub panic { } $w = $w ? '@ = ' : '$ = '; $a = $h ? '(' . join(', ', @a) . ')' : ''; - push(@sub, "$w&$s$a from file $f line $l\n"); + push(@frames, "$w&$s$a from file $f line $l\n"); } - for ($i=0; $i <= $#sub; $i++) { - print $sub[$i]; + for ($i=0; $i <= $#frames; $i++) { + print $frames[$i]; } exit 1; }