require Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw(dbg dbgadd dbgsub dbglist isdbg);
-@EXPORT_OK = qw(dbg dbgadd dbgsub dbglist isdbg);
+@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist isdbg dbgclose);
+@EXPORT_OK = qw(dbginit dbg dbgadd dbgsub dbglist isdbg dbgclose);
use strict;
use vars qw(%dbglevel $fp);
-use FileHandle;
use DXUtil;
use DXLog ();
use Carp;
%dbglevel = ();
$fp = DXLog::new('debug', 'dat', 'd');
-# add sig{__DIE__} handling
-if (!defined $DB::VERSION) {
- $SIG{__WARN__} = $SIG{__DIE__} = sub {
- my $t = time;
- for (@_) {
- $fp->writeunix($t, "$t^$_");
-# print STDERR $_;
- }
- };
+sub _store
+{
+ my $t = time;
+ for (@_) {
+ $fp->writeunix($t, "$t^$_");
+ print STDERR $_;
+ }
+}
+
+sub dbginit
+{
+ # add sig{__DIE__} handling
+ if (!defined $DB::VERSION) {
+ $SIG{__WARN__} = $SIG{__DIE__} = \&_store;
+ }
+}
+
+sub dbgclose
+{
+ $SIG{__DIE__} = $SIG{__WARN__} = 'DEFAULT';
+ $fp->close();
}
sub dbg