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.

Reply via email to