require Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose dbgtrace confess croak cluck carp);
+@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose dbgtrace dbgprintring dbgsetcat confess croak cluck carp);
use strict;
use vars qw(%dbglevel $fp $callback $cleandays $keepdays $dbgringlth);
exit(-1);
}
sub carp {
- DXDebug::dbgprintring(25) if DXDebug('nologchan');
+ DXDebug::dbgprintring(5) if DXDebug::isdbg('nologchan');
# DXDebug::dbg(Carp::shortmess(\@_));
DXDebug::longmess(\@_);
}
sub cluck {
- DXDebug::dbgprintring(25) if DXDebug('nologchan');
+ DXDebug::dbgprintring(5) if DXDebug::isdbg('nologchan');
# DXDebug::dbg(Carp::longmess(\@_));
DXDebug::longmess(\@_);
} );
last if $pkg =~ /Mojo/;
# say "*** in dbgtrace $i after mojo";
$_isdbg = 'trace';
- dbg("Stack ($i): $pkg::$subr in $fn line: $l");
+ dbg("Stack ($i): ${pkg}::$subr in $fn line: $l");
}
$_isdbg = '';
}
my @l = split /\n/, $r;
foreach my $l (@l) {
$l =~ s/([\x00-\x08\x0B-\x1f\x7f-\xff])/sprintf("%%%02X",ord($1))/eg;
- print "$l\n" if defined \*STDOUT && !$no_stdout;
my $tag = $_isdbg ? "($_isdbg) " : '(*) ';
+ print "$tag$l\n" if defined \*STDOUT && !$no_stdout;
my $str = "$t^$tag$l";
&$callback($str) if $callback;
if ($dbgringlth) {
$fp->writeunix($t, $str) unless !$fp || $dbglevel{"nolog$_isdbg"} ;
}
}
+ $_isdbg = '';
}
sub dbginit
{
+ my $basename = shift || 'debug';
$callback = shift;
# add sig{__DIE__} handling
}
}
- $fp = DXLog::new('debug', 'dat', 'd');
+ $fp = DXLog::new($basename, 'dat', 'd');
dbgclearring();
}
my $l = shift;
my $m = shift;
if ($dbglevel{$l} || $l eq 'err') {
+ my @out;
foreach my $l (@_) {
for (my $o = 0; $o < length $l; $o += 16) {
my $c = substr $l, $o, 16;
$c =~ s/[\x00-\x1f\x7f-\xff]/./g;
my $left = 16 - length $c;
$h .= ' ' x (2 * $left) if $left > 0;
- dbg($m . sprintf("%4d:", $o) . "$h $c");
+ push @out, $m . sprintf("%4d:", $o) . "$h $c";
$m = ' ' x (length $m);
}
}
- }
+ dbg(@out) if isdbg($l); # yes, I know, I have my reasons;
+ }
}
sub dbgadd
}
}
+# force a category for the next (unconditional) dbg message (replace (*) with (<something>))
+sub dbgsetcat
+{
+ $_isdbg = shift;
+}
+
1;
__END__