X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXDebug.pm;h=14f8dbd2a06ad753c559d3ed9c2cb56a52d8045b;hb=c20912fa90a1c3dd97d437e08691b5dc043dd869;hp=4b8d4f250575ed198ec5357db1ba7b88c2dd3a8e;hpb=3b0eeaaa6152345bcd42380e385c04fb7e50a064;p=spider.git diff --git a/perl/DXDebug.pm b/perl/DXDebug.pm index 4b8d4f25..14f8dbd2 100644 --- a/perl/DXDebug.pm +++ b/perl/DXDebug.pm @@ -14,7 +14,7 @@ require Exporter; @EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose confess croak cluck); use strict; -use vars qw(%dbglevel $fp); +use vars qw(%dbglevel $fp $callback); use DXUtil; use DXLog (); @@ -22,6 +22,7 @@ use Carp (); %dbglevel = (); $fp = undef; +$callback = undef; # Avoid generating "subroutine redefined" warnings with the following # hack (from CGI::Carp): @@ -64,13 +65,17 @@ sub dbg($) for (@l) { s/([\x00-\x08\x0B-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg; print "$_\n" if defined \*STDOUT; - $fp->writeunix($t, "$t^$_"); + my $str = "$t^$_"; + &$callback($str) if $callback; + $fp->writeunix($t, $str); } } } sub dbginit { + $callback = shift; + # add sig{__DIE__} handling if (!defined $DB::VERSION) { $SIG{__WARN__} = sub {