X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fperl5db.pl;h=ba3e2f74ae7e4de0be1b20e14b66d7ca30c437ca;hb=ba690e3299357f01ba3a8cb5887c44f0790a0c35;hp=093fc2cb1e08a1a81b34db606a6de37fbe32c3bb;hpb=d6b7ef8642dbff7f74dde11fd4995a37e8f38c04;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/perl5db.pl b/lib/perl5db.pl index 093fc2c..ba3e2f7 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -1,7 +1,7 @@ package DB; # Debugger for Perl 5.00x; perl5db.pl patch level: -$VERSION = 1.17; +$VERSION = 1.19; $header = "perl5db.pl version $VERSION"; # It is crucial that there is no lexicals in scope of `eval ""' down below @@ -318,6 +318,8 @@ sub eval { # + v(view code), V(view Variables) # ... (was w,V) # Changes: 1.18: Mar 17, 2002 Richard Foley # + fixed missing cmd_O bug +# Changes: 1.19: Mar 29, 2002 Spider Boardman +# + Added missing local()s -- DB::DB is called recursively. # #################################################################### @@ -440,7 +442,7 @@ if (defined $ENV{PERLDB_PIDS}) { $term_pid = -1; } else { $ENV{PERLDB_PIDS} = "$$"; - $pids = ''; + $pids = "{pid=$$}"; $term_pid = $$; } $pidprompt = ''; @@ -664,9 +666,9 @@ sub DB { } $runnonstop = 0 if $single or $signal; # Disable it if interactive. &save; - ($package, $filename, $line) = caller; - $filename_ini = $filename; - $usercontext = '($@, $!, $^E, $,, $/, $\, $^W) = @saved;' . + local($package, $filename, $line) = caller; + local $filename_ini = $filename; + local $usercontext = '($@, $!, $^E, $,, $/, $\, $^W) = @saved;' . "package $package;"; # this won't let them modify, alas local(*dbline) = $main::{'_<' . $filename}; @@ -677,7 +679,7 @@ sub DB { *dbline = $main::{'_<' . $filename}; } - $max = $#dbline; + local $max = $#dbline; if ($dbline{$line} && (($stop,$action) = split(/\0/,$dbline{$line}))) { if ($stop eq '1') { $signal |= 1; @@ -2240,6 +2242,9 @@ sub os2_get_fork_TTY { $ENV{PERL5OPT} =~ s/(?:^|(?<=\s))-d\b// if $ENV{PERL5OPT}; $ENV{PERL5OPT} =~ s/(?:^|(?<=\s))-d\B/-/ if $ENV{PERL5OPT}; print $OUT "Making kid PERL5OPT->`$ENV{PERL5OPT}'.\n" if $ENV{PERL5OPT}; + local $ENV{PERL5LIB} = $ENV{PERL5LIB} ? $ENV{PERL5LIB} : $ENV{PERLLIB}; + $ENV{PERL5LIB} = '' unless defined $ENV{PERL5LIB}; + $ENV{PERL5LIB} = join ';', @ini_INC, split /;/, $ENV{PERL5LIB}; (my $name = $0) =~ s,^.*[/\\],,s; my @args; if ( pipe $in1, $out1 and pipe $in2, $out2 @@ -2248,6 +2253,8 @@ sub os2_get_fork_TTY { and @args = ($rl, fileno $in1, fileno $out2, "Daughter Perl debugger $pids $name") and (($kpid = CORE::system 4, $^X, '-we', <<'ES', @args) >= 0 # P_SESSION +END {sleep 5 unless $loaded} +BEGIN {open STDIN, '