Change 15258 by jhi@alpha on 2002/03/16 17:54:49
Subject: [PATCH] Re: dumpvar.pl bug
From: Peter Scott <[EMAIL PROTECTED]>
Date: Fri, 15 Mar 2002 18:19:21 -0800
Message-id: <[EMAIL PROTECTED]>
Affected files ...
.... //depot/perl/lib/dumpvar.pl#17 edit
.... //depot/perl/lib/perl5db.pl#80 edit
Differences ...
==== //depot/perl/lib/dumpvar.pl#17 (text) ====
Index: perl/lib/dumpvar.pl
--- perl/lib/dumpvar.pl.~1~ Sat Mar 16 11:00:06 2002
+++ perl/lib/dumpvar.pl Sat Mar 16 11:00:06 2002
@@ -237,13 +237,13 @@
print "$sp-> ",&stringify($$v,1),"\n";
if ($globPrint) {
$s += 3;
- dumpglob($s, "{$$v}", $$v, 1);
+ dumpglob($s, "{$$v}", $$v, 1, $m-1);
} elsif (defined ($fileno = fileno($v))) {
print( (' ' x ($s+3)) . "FileHandle({$$v}) => fileno($fileno)\n" );
}
} elsif (ref \$v eq 'GLOB') {
if ($globPrint) {
- dumpglob($s, "{$v}", $v, 1) if $globPrint;
+ dumpglob($s, "{$v}", $v, 1, $m-1) if $globPrint;
} elsif (defined ($fileno = fileno(\$v))) {
print( (' ' x $s) . "FileHandle({$v}) => fileno($fileno)\n" );
}
@@ -296,16 +296,16 @@
sub dumpglob {
return if $DB::signal;
- my ($off,$key, $val, $all) = @_;
+ my ($off,$key, $val, $all, $m) = @_;
local(*entry) = $val;
my $fileno;
if (($key !~ /^_</ or $dumpDBFiles) and defined $entry) {
print( (' ' x $off) . "\$", &unctrl($key), " = " );
- DumpElem $entry, 3+$off;
+ DumpElem $entry, 3+$off, $m;
}
if (($key !~ /^_</ or $dumpDBFiles) and @entry) {
print( (' ' x $off) . "\@$key = (\n" );
- unwrap(\@entry,3+$off) ;
+ unwrap(\@entry,3+$off,$m) ;
print( (' ' x $off) . ")\n" );
}
if ($key ne "main::" && $key ne "DB::" && %entry
@@ -313,7 +313,7 @@
&& ($key !~ /^_</ or $dumpDBFiles)
&& !($package eq "dumpvar" and $key eq "stab")) {
print( (' ' x $off) . "\%$key = (\n" );
- unwrap(\%entry,3+$off) ;
+ unwrap(\%entry,3+$off,$m) ;
print( (' ' x $off) . ")\n" );
}
if (defined ($fileno = fileno(*entry))) {
@@ -361,7 +361,7 @@
}
sub main::dumpvar {
- my ($package,@vars) = @_;
+ my ($package,$m,@vars) = @_;
local(%address,$key,$val,$^W);
$package .= "::" unless $package =~ /::$/;
*stab = *{"main::"};
@@ -379,7 +379,7 @@
if ($package ne 'dumpvar' or $key ne 'stab')
and ref(\$val) eq 'GLOB';
} else {
- dumpglob(0,$key, $val);
+ dumpglob(0,$key, $val, 0, $m);
}
}
if ($usageOnly) {
==== //depot/perl/lib/perl5db.pl#80 (text) ====
Index: perl/lib/perl5db.pl
--- perl/lib/perl5db.pl.~1~ Sat Mar 16 11:00:06 2002
+++ perl/lib/perl5db.pl Sat Mar 16 11:00:06 2002
@@ -827,7 +827,10 @@
local $frame = 0;
local $doret = -2;
# must detect sigpipe failures
- eval { &main::dumpvar($packname,@vars) };
+ eval { &main::dumpvar($packname,
+ defined $option{dumpDepth}
+ ? $option{dumpDepth} : -1,
+ @vars) };
if ($@) {
die unless $@ =~ /dumpvar print failed/;
}
End of Patch.