2 # The system variables - those indicated will need to be changed to suit your
3 # circumstances (and callsign)
5 # Copyright (c) 1998 - Dirk Koopman G1TLH
14 @EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist isdbg dbgclose confess croak cluck cluck);
17 use vars qw(%dbglevel $fp);
24 $fp = DXLog::new('debug', 'dat', 'd');
26 # Avoid generating "subroutine redefined" warnings with the following
27 # hack (from CGI::Carp):
28 if (!defined $DB::VERSION) {
30 eval qq( sub confess {
31 \$SIG{__DIE__} = 'DEFAULT';
32 DXDebug::_store(\$@, Carp::shortmess(\@_));
36 \$SIG{__DIE__} = 'DEFAULT';
37 DXDebug::_store(\$@, Carp::longmess(\@_));
40 sub carp { DXDebug::_store(Carp::shortmess(\@_)); }
41 sub cluck { DXDebug::_store(Carp::longmess(\@_)); }
44 CORE::die(Carp::shortmess($@)) if $@;
46 eval qq( sub confess { Carp::confess(\@_); };
47 sub cluck { Carp::cluck(\@_); };
60 $l =~ s/([\x00\x08\x0B-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
61 print "$_\n" if defined \*STDOUT;
62 $fp->writeunix($t, "$t^$_");
69 # add sig{__DIE__} handling
70 if (!defined $DB::VERSION) {
71 $SIG{__WARN__} = sub { _store($@, Carp::shortmess(@_)); };
72 $SIG{__DIE__} = sub { _store($@, Carp::longmess(@_)); };
78 $SIG{__DIE__} = $SIG{__WARN__} = 'DEFAULT';
85 if ($dbglevel{$l} || $l eq 'err') {
91 print "$_\n" if defined \*STDOUT;
92 $fp->writeunix($t, "$t^$_");
101 foreach $entry (@_) {
102 $dbglevel{$entry} = 1;
110 foreach $entry (@_) {
111 delete $dbglevel{$entry};
117 return keys (%dbglevel);
123 return $dbglevel{$s};
128 return Carp::shortmess(@_);
133 return Carp::longmess(@_);