=item p expr
Same as C<print {$DB::OUT} expr> in the current package. In particular,
-because this is just Perl's own B<print> function, this means that nested
+because this is just Perl's own C<print> function, this means that nested
data structures and objects are not dumped, unlike with the C<x> command.
The C<DB::OUT> filehandle is opened to F</dev/tty>, regardless of
See L<Dumpvalue> if you'd like to do this yourself.
The output format is governed by multiple options described under
-L<"Options">.
+L<"Configurable Options">.
=item V [pkg [vars]]
=item /pattern/
Search forwards for pattern (a Perl regex); final / is optional.
+The search is case-insensitive by default.
=item ?pattern?
Search backwards for pattern; final ? is optional.
+The search is case-insensitive by default.
=item L
is specified, it's evaluated each time the statement is reached: a
breakpoint is taken only if the condition is true. Breakpoints may
only be set on lines that begin an executable statement. Conditions
-don't use B<if>:
+don't use C<if>:
b 237 $x > 30
b 237 ++$count237 < 11
1 only where it is safe to do so--that is, mostly for Boolean
options. It is always better to assign a specific value using C<=>.
The C<option> can be abbreviated, but for clarity probably should
-not be. Several options can be set together. See L<"Options"> for
-a list of these.
+not be. Several options can be set together. See L<"Configurable Options">
+for a list of these.
=item < ?
Adds an action (Perl command) to happen after the prompt when you've
just given a command to return to executing the script. A multi-line
-command may be entered by slackbashing the newlines.
+command may be entered by backslashing the newlines.
=item { ?
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
=item ||dbcmd
-Same as C<|dbcmd> but DB::OUT is temporarily B<select>ed as well.
+Same as C<|dbcmd> but DB::OUT is temporarily C<select>ed as well.
=item = [alias value]
The debugger has numerous options settable using the C<O> command,
either interactively or from the environment or an rc file.
+(./.perldb or ~/.perldb under Unix.)
+
=over 12
Length to truncate the argument list when the C<frame> option's
bit 4 is set.
+=item C<windowSize>
+
+Change the size of code list window (default is 10 lines).
+
=back
The following options affect what happens with C<V>, C<X>, and C<x>
=back
-During startup, options are initialized from C<$ENV{PERLDB_OPTS}>.
-You may place the initialization options C<TTY>, C<noTTY>,
-C<ReadLine>, and C<NonStop> there.
+After the rc file is read, the debugger reads the C<$ENV{PERLDB_OPTS}>
+environment variable and parses this as the remainder of a `O ...'
+line as one might enter at the debugger prompt. You may place the
+initialization options C<TTY>, C<noTTY>, C<ReadLine>, and C<NonStop>
+there.
If your rc file contains:
marked by C<b> and those with actions by C<a>. The line that's
about to be executed is marked by C<< ==> >>.
+Please be aware that code in debugger listings may not look the same
+as your original source code. Line directives and external source
+filters can alter the code before Perl sees it, causing code to move
+from its original positions or take on entirely different forms.
+
=item Frame listing
When the C<frame> option is set, the debugger would print entered (and
You cannot get stack frame information or in any fashion debug functions
that were not compiled by Perl, such as those from C or C++ extensions.
-If you alter your @_ arguments in a subroutine (such as with B<shift>
-or B<pop>, the stack backtrace will not show the original values.
+If you alter your @_ arguments in a subroutine (such as with C<shift>
+or C<pop>, the stack backtrace will not show the original values.
+
+The debugger does not currently work in conjunction with the B<-W>
+command-line switch, because it itself is not free of warnings.
If you're in a slow syscall (like C<wait>ing, C<accept>ing, or C<read>ing
from your keyboard or a socket) and haven't set up your own C<$SIG{INT}>