X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/e7191bc2818007bf58cec5e2167e977904f0ac44..cbebaf93b5864f5314ccee0ebc0a235d2d58b662:/SL/Watchdog.pm diff --git a/SL/Watchdog.pm b/SL/Watchdog.pm index 3aac6532b..9001b1b32 100644 --- a/SL/Watchdog.pm +++ b/SL/Watchdog.pm @@ -30,9 +30,41 @@ sub STORE { $main::lxdebug->_write("WATCH", "Value of '$key' changed from '$this->{$key}' to '$value' " . "in ${subroutine} at ${self_filename}:${self_line}"); + if ($watched_variables{$key} > 1) { + my $level = 1; + my ($dummy, $filename, $line); + + while (($dummy, $filename, $line, $subroutine) = caller $level) { + $main::lxdebug->_write("WATCH", " ${subroutine} from ${filename}:${line}"); + $level++; + } + } } $this->{$key} = $value; } +sub DELETE { + my ($this, $key) = @_; + + if ($watched_variables{$key} && ($this->{$key} ne "")) { + my $subroutine = (caller 1)[3]; + my ($self_filename, $self_line) = (caller)[1, 2]; + $main::lxdebug->_write("WATCH", + "Value of '$key' changed from '$this->{$key}' to '' " + . "in ${subroutine} at ${self_filename}:${self_line}"); + if ($watched_variables{$key} > 1) { + my $level = 1; + my ($dummy, $filename, $line); + + while (($dummy, $filename, $line, $subroutine) = caller $level) { + $main::lxdebug->_write("WATCH", " ${subroutine} from ${filename}:${line}"); + $level++; + } + } + } + + delete $this->{$key}; +} + 1;