X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fperl5db.pl;h=ab9c48da60f3195665bf6e3d1657478b55b43f55;hb=afc46004557cada88060a20d235b3f5e6303a4ac;hp=2257e713faa3e50e9a12eec01cd5c6b6cfdf4502;hpb=6f891d7dab7c11319066df6d1a3afcf0c5bb641d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/perl5db.pl b/lib/perl5db.pl index 2257e71..ab9c48d 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -342,8 +342,8 @@ $inhibit_exit = $option{PrintRet} = 1; # These guys may be defined in $ENV{PERL5DB} : $rl = 1 unless defined $rl; -$warnLevel = 0 unless defined $warnLevel; -$dieLevel = 0 unless defined $dieLevel; +$warnLevel = 1 unless defined $warnLevel; +$dieLevel = 1 unless defined $dieLevel; $signalLevel = 1 unless defined $signalLevel; $pre = [] unless defined $pre; $post = [] unless defined $post; @@ -889,6 +889,7 @@ EOP $i = $end; } else { for (; $i <= $end; $i++) { + my ($stop,$action); ($stop,$action) = split(/\0/, $dbline{$i}) if $dbline{$i}; $arrow = ($i==$line @@ -1225,7 +1226,7 @@ EOP *dbline = $main::{'_<' . $file}; next unless %dbline or $postponed_file{$file}; (push @hard, $file), next - if $file =~ /^\(eval \d+\)$/; + if $file =~ /^\(\w*eval/; my @add; @add = %{$postponed_file{$file}} if $postponed_file{$file}; @@ -2681,7 +2682,8 @@ sub dbdie { if ($dieLevel < 2) { die @_ if $^S; # in eval propagate } - eval { require Carp } if defined $^S; # If error/warning during compilation, + # No need to check $^S, eval is much more robust nowadays + eval { require Carp }; #if defined $^S;# If error/warning during compilation, # require may be broken. die(@_, "\nCannot print stack trace, load with -MCarp option to see stack") @@ -2691,7 +2693,13 @@ sub dbdie { # inside DB::DB, but not in Carp). my ($mysingle,$mytrace) = ($single,$trace); $single = 0; $trace = 0; - my $mess = Carp::longmess(@_); + my $mess = "@_"; + { + package Carp; # Do not include us in the list + eval { + $mess = Carp::longmess(@_); + }; + } ($single,$trace) = ($mysingle,$mytrace); die $mess; }