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::longmess(\@_));
36 \$SIG{__DIE__} = 'DEFAULT';
37 DXDebug::_store(Carp::shortmess(\@_));
40 sub carp { DXDebug::_store(Carp::shortmess(\@_)); }
41 sub cluck { DXDebug::_store(Carp::longmess(\@_)); }
44 CORE::die(Carp::shortmess($@)) if $@;
52 $fp->writeunix($t, "$t^$_");
59 # add sig{__DIE__} handling
60 if (!defined $DB::VERSION) {
61 $SIG{__WARN__} = sub { _store(Carp::shortmess(@_)); };
62 $SIG{__DIE__} = sub { _store(Carp::shortmess(@_)); };
68 $SIG{__DIE__} = $SIG{__WARN__} = 'DEFAULT';
75 if ($dbglevel{$l} || $l eq 'err') {
81 print "$_\n" if defined \*STDOUT;
82 $fp->writeunix($t, "$t^$_");
92 $dbglevel{$entry} = 1;
100 foreach $entry (@_) {
101 delete $dbglevel{$entry};
107 return keys (%dbglevel);
113 return $dbglevel{$s};
118 return Carp::shortmess(@_);
123 return Carp::longmess(@_);