diff options
author | Peter Scott <Peter@PSDT.com> | 2002-03-15 10:19:21 -0800 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-03-16 17:54:49 +0000 |
commit | 3a4b996c622ca8a2cd8d468317fb869865ee25b2 (patch) | |
tree | 59e31c3a8851b5245c84995dabc5c6178d5d0029 /lib | |
parent | a48ec845cbd27881b821dcb9bb80e52ba093c5f2 (diff) | |
download | perl-3a4b996c622ca8a2cd8d468317fb869865ee25b2.tar.gz |
Re: dumpvar.pl bug
Message-id: <4.3.2.7.2.20020315153302.00bac420@shell2.webquarry.com>
p4raw-id: //depot/perl@15258
Diffstat (limited to 'lib')
-rw-r--r-- | lib/dumpvar.pl | 16 | ||||
-rw-r--r-- | lib/perl5db.pl | 5 |
2 files changed, 12 insertions, 9 deletions
diff --git a/lib/dumpvar.pl b/lib/dumpvar.pl index 184faa39f3..2fb1f695ce 100644 --- a/lib/dumpvar.pl +++ b/lib/dumpvar.pl @@ -237,13 +237,13 @@ sub unwrap { 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 quote { 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 @@ sub dumpglob { && ($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 findsubs { } sub main::dumpvar { - my ($package,@vars) = @_; + my ($package,$m,@vars) = @_; local(%address,$key,$val,$^W); $package .= "::" unless $package =~ /::$/; *stab = *{"main::"}; @@ -379,7 +379,7 @@ sub main::dumpvar { 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) { diff --git a/lib/perl5db.pl b/lib/perl5db.pl index e1ee5917e1..158510dfeb 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -827,7 +827,10 @@ EOP 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/; } |