Shlomif, y u break perl? -------- Original Message --------
On Sat May 25 17:33:45 2013, jkeenan wrote: > On Fri May 24 22:24:07 2013, dotandi...@gmail.com wrote: > > > > > > This is a bug report for perl from do...@corky.net, > > generated with the help of perlbug 1.39 running under perl 5.18.0. > > > > > > ----------------------------------------------------------------- > > In perl 5.18.0, @_ isn't visible in the debugger (perl -d). > > You can't inspect it with x (eval/dump) or w (watch). > > > > Example: > > perl -dE 'sub f { say $_ for (@_); $a = $_[1]; say $a;}; f(4,25,7);' > > DB<1> s > > ... > > DB<1> x @_ > > empty array > > > > ----------------------------------------------------------------- > > --- > > Flags: > > category=core > > severity=high > > --- > > Site configuration information for perl 5.18.0: > > > > Configured by dotandimet at Mon May 20 22:37:44 IDT 2013. > > > > Summary of my perl5 (revision 5 version 18 subversion 0) > > configuration: > > > > This does seem to be a regression from 5.16.0: > > ##### > $ /usr/local/bin/perl5.16.0 -d 118169-debug.pl > > Loading DB routines from perl5db.pl version 1.37 > Editor support available. > > Enter h or 'h h' for help, or 'man perldebug' for more help. > > main::(118169-debug.pl:4): use Data::Dumper;$Data::Dumper::Indent=1; > DB<1> n > main::(118169-debug.pl:7): f(4,25,7); > DB<1> s > main::f(118169-debug.pl:10): say $_ for (@_); > DB<1> x @_ > 0 4 > 1 25 > 2 7 > ##### It was caused by: commit 7c54f46a95be02b1ca921f4d4521122267d801cd Author: Shlomi Fish <shlo...@shlomifish.org> Date: Mon Oct 1 20:40:13 2012 +0200 perl5db: no longer passing arguments to DB::eval(). It didn't accept any arguments anyway. diff --git a/lib/perl5db.pl b/lib/perl5db.pl index 54de27a..87713a5 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -741,7 +741,7 @@ sub eval { # Since we're only saving $@, we only have to localize the array element # that it will be stored in. local $saved[0]; # Preserve the old value of $@ - eval { &DB::save }; + eval { DB::save() }; # Now see whether we need to report an error back to the user. if ($at) { @@ -1929,7 +1929,7 @@ If there are any preprompt actions, execute those as well. =cut # If there's an action, do it now. - $evalarg = $action, DB::eval(@_) if $action; + $evalarg = $action, DB::eval() if $action; # Are we nested another level (e.g., did we evaluate a function # that had a breakpoint in it at the debugger prompt)? @@ -1940,7 +1940,7 @@ If there are any preprompt actions, execute those as well. # Do any pre-prompt actions. foreach $evalarg (@$pre) { - DB::eval(@_); + DB::eval(); } # Complain about too much recursion if we passed the limit. @@ -3273,7 +3273,7 @@ any variables we might want to address in the C<DB> package. $evalarg = "\$^D = \$^D | \$DB::db_stop;\n$cmd"; # Run *our* eval that executes in the caller's context. - DB::eval(@_); + DB::eval(); # Turn off the one-time-dump stuff now. if ($onetimeDump) { @@ -3374,7 +3374,7 @@ again. # Evaluate post-prompt commands. foreach $evalarg (@$post) { - DB::eval(@_); + DB::eval(); } } # if ($single || $signal) @@ -3477,7 +3477,7 @@ sub _DB__handle_watch_expressions # Fix context DB::eval() wants to return an array, but # we need a scalar here. - my ($val) = join( "', '", DB::eval(@_) ); + my ($val) = join( "', '", DB::eval() ); $val = ( ( defined $val ) ? "'$val'" : 'undef' ); # Did it change? @@ -5075,7 +5075,7 @@ sub cmd_i { my $line = shift; foreach my $isa ( split( /\s+/, $line ) ) { $evalarg = $isa; - ($isa) = DB::eval(@_); + ($isa) = DB::eval(); no strict 'refs'; print join( ', ', @@ -5120,7 +5120,7 @@ sub cmd_l { # Set up for DB::eval() - evaluate in *user* context. $evalarg = $1; # $evalarg = $2; - my ($s) = DB::eval(@_); + my ($s) = DB::eval(); # Ooops. Bad scalar. if ($@) { @@ -5523,7 +5523,7 @@ sub _add_watch_expr { # in the user's context. This version can handle expressions which # return a list value. $evalarg = $expr; - my ($val) = join( ' ', DB::eval(@_) ); + my ($val) = join( ' ', DB::eval() ); $val = ( defined $val ) ? "'$val'" : 'undef'; # Save the current value of the _expression_. @@ -9744,7 +9744,7 @@ sub cmd_pre580_W { # Get the current value of the _expression_. # Doesn't handle expressions returning list values! $evalarg = $1; - my ($val) = DB::eval(@_); + my ($val) = DB::eval(); $val = ( defined $val ) ? "'$val'" : 'undef'; # Save it. -- Father Chrysostomos -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. |
_______________________________________________ Perl mailing list Perl@perl.org.il http://mail.perl.org.il/mailman/listinfo/perl