Change 12014 by jhi@alpha on 2001/09/14 02:31:05
Subject: [PATCH] Execute files of debugger commands
From: Peter Scott <[EMAIL PROTECTED]>
Date: Thu, 13 Sep 2001 15:26:31 -0700
Message-Id: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/lib/perl5db.pl#65 edit
... //depot/perl/pod/perldebug.pod#36 edit
Differences ...
==== //depot/perl/lib/perl5db.pl#65 (text) ====
Index: perl/lib/perl5db.pl
--- perl/lib/perl5db.pl.~1~ Thu Sep 13 20:45:05 2001
+++ perl/lib/perl5db.pl Thu Sep 13 20:45:05 2001
@@ -1433,6 +1433,14 @@
}
}
next CMD; };
+ $cmd =~ /^\@\s*(.*\S)/ && do {
+ if (open my $fh, $1) {
+ push @cmdfhs, $fh;
+ }
+ else {
+ &warn("Can't execute `$1': $!\n");
+ }
+ next CMD; };
$cmd =~ /^\|\|?\s*[^|]/ && do {
if ($pager =~ /^\|/) {
open(SAVEOUT,">&STDOUT") || &warn("Can't save STDOUT");
@@ -2105,6 +2113,11 @@
}
local $frame = 0;
local $doret = -2;
+ while (@cmdfhs) {
+ my $line = CORE::readline($cmdfhs[-1]);
+ defined $line ? (print $OUT ">> $line" and return $line)
+ : close pop @cmdfhs;
+ }
if (ref $OUT and UNIVERSAL::isa($OUT, 'IO::Socket::INET')) {
$OUT->write(join('', @_));
my $stuff;
@@ -2487,6 +2500,7 @@
. ( $rc eq $sh ? "" : "
B<$psh> [I<cmd>] Run I<cmd> in subshell (forces \"\$SHELL -c 'cmd'\")." ) . "
See 'B<O> I<shellBang>' too.
+B<@>I<file> Execute I<file> containing debugger commands (may nest).
B<H> I<-number> Display last number commands (default all).
B<p> I<expr> Same as \"I<print {DB::OUT} expr>\" in current package.
B<|>I<dbcmd> Run debugger command, piping DB::OUT to current pager.
==== //depot/perl/pod/perldebug.pod#36 (text) ====
Index: perl/pod/perldebug.pod
--- perl/pod/perldebug.pod.~1~ Thu Sep 13 20:45:05 2001
+++ perl/pod/perldebug.pod Thu Sep 13 20:45:05 2001
@@ -387,6 +387,11 @@
with proper interpretation of exit status or signal and coredump
information.
+=item @ file
+
+Read and execute debugger commands from I<file>. I<file> may itself contain
+C<@> commands.
+
=item H -number
Display last n commands. Only commands longer than one character are
End of Patch.