-If you want to enter a multi-line command, such as a subroutine
-definition with several statements, or a format, you may escape the
-newline that would normally end the debugger command with a backslash.
-Here's an example:
-
- DB<1> for (1..4) { \
- cont: print "ok\n"; \
- cont: }
- ok
- ok
- ok
- ok
-
-Note that this business of escaping a newline is specific to interactive
-commands typed into the debugger.
-
-=item Stack backtrace
-
-Here's an example of what a stack backtrace via C<T> command might
-look like:
-
- $ = main::infested called from file `Ambulation.pm' line 10
- @ = Ambulation::legs(1, 2, 3, 4) called from file `camel_flea' line 7
- $ = main::pests('bactrian', 4) called from file `camel_flea' line 4
-
-The left-hand character up there tells whether the function was called
-in a scalar or list context (we bet you can tell which is which). What
-that says is that you were in the function C<main::infested> when you ran
-the stack dump, and that it was called in a scalar context from line 10
-of the file I<Ambulation.pm>, but without any arguments at all, meaning
-it was called as C<&infested>. The next stack frame shows that the
-function C<Ambulation::legs> was called in a list context from the
-I<camel_flea> file with four arguments. The last stack frame shows that
-C<main::pests> was called in a scalar context, also from I<camel_flea>,
-but from line 4.
-
-Note that if you execute C<T> command from inside an active C<use>
-statement, the backtrace will contain both C<require>
-frame and an C<eval>) frame.
-
-=item Listing
-
-Listing given via different flavors of C<l> command looks like this:
-
- DB<<13>> l
- 101: @i{@i} = ();
- 102:b @isa{@i,$pack} = ()
- 103 if(exists $i{$prevpack} || exists $isa{$pack});
- 104 }
- 105
- 106 next
- 107==> if(exists $isa{$pack});
- 108
- 109:a if ($extra-- > 0) {
- 110: %isa = ($pack,1);
-
-Note that the breakable lines are marked with C<:>, lines with
-breakpoints are marked by C<b>, with actions by C<a>, and the
-next executed line is marked by C<==E<gt>>.
-
-=item Frame listing
-
-When C<frame> option is set, debugger would print entered (and
-optionally exited) subroutines in different styles.
-
-What follows is the start of the listing of
-
- env "PERLDB_OPTS=f=n N" perl -d -V
-
-for different values of C<n>:
-
-=over 4
-
-=item 1
-
- entering main::BEGIN
- entering Config::BEGIN
- Package lib/Exporter.pm.
- Package lib/Carp.pm.
- Package lib/Config.pm.
- entering Config::TIEHASH
- entering Exporter::import
- entering Exporter::export
- entering Config::myconfig
- entering Config::FETCH
- entering Config::FETCH
- entering Config::FETCH
- entering Config::FETCH
-
-=item 2
-
- entering main::BEGIN
- entering Config::BEGIN
- Package lib/Exporter.pm.
- Package lib/Carp.pm.
- exited Config::BEGIN
- Package lib/Config.pm.
- entering Config::TIEHASH
- exited Config::TIEHASH
- entering Exporter::import
- entering Exporter::export
- exited Exporter::export
- exited Exporter::import
- exited main::BEGIN
- entering Config::myconfig
- entering Config::FETCH
- exited Config::FETCH
- entering Config::FETCH
- exited Config::FETCH
- entering Config::FETCH
-
-=item 4
-
- in $=main::BEGIN() from /dev/nul:0
- in $=Config::BEGIN() from lib/Config.pm:2
- Package lib/Exporter.pm.
- Package lib/Carp.pm.
- Package lib/Config.pm.
- in $=Config::TIEHASH('Config') from lib/Config.pm:644
- in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
- in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from li
- in @=Config::myconfig() from /dev/nul:0
- in $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'PATCHLEVEL') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'SUBVERSION') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'osname') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'osvers') from lib/Config.pm:574
-
-=item 6
-
- in $=main::BEGIN() from /dev/nul:0
- in $=Config::BEGIN() from lib/Config.pm:2
- Package lib/Exporter.pm.
- Package lib/Carp.pm.
- out $=Config::BEGIN() from lib/Config.pm:0
- Package lib/Config.pm.
- in $=Config::TIEHASH('Config') from lib/Config.pm:644
- out $=Config::TIEHASH('Config') from lib/Config.pm:644
- in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
- in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/
- out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/
- out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
- out $=main::BEGIN() from /dev/nul:0
- in @=Config::myconfig() from /dev/nul:0
- in $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
- out $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
- out $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'PATCHLEVEL') from lib/Config.pm:574
- out $=Config::FETCH(ref(Config), 'PATCHLEVEL') from lib/Config.pm:574
- in $=Config::FETCH(ref(Config), 'SUBVERSION') from lib/Config.pm:574
-
-=item 14
-
- in $=main::BEGIN() from /dev/nul:0
- in $=Config::BEGIN() from lib/Config.pm:2
- Package lib/Exporter.pm.
- Package lib/Carp.pm.
- out $=Config::BEGIN() from lib/Config.pm:0
- Package lib/Config.pm.
- in $=Config::TIEHASH('Config') from lib/Config.pm:644
- out $=Config::TIEHASH('Config') from lib/Config.pm:644
- in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
- in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E
- out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E
- out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
- out $=main::BEGIN() from /dev/nul:0
- in @=Config::myconfig() from /dev/nul:0
- in $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574
- out $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574
- in $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
- out $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
-
-=item 30
-
- in $=CODE(0x15eca4)() from /dev/null:0
- in $=CODE(0x182528)() from lib/Config.pm:2
- Package lib/Exporter.pm.
- out $=CODE(0x182528)() from lib/Config.pm:0
- scalar context return from CODE(0x182528): undef
- Package lib/Config.pm.
- in $=Config::TIEHASH('Config') from lib/Config.pm:628
- out $=Config::TIEHASH('Config') from lib/Config.pm:628
- scalar context return from Config::TIEHASH: empty hash
- in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
- in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171
- out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171
- scalar context return from Exporter::export: ''
- out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
- scalar context return from Exporter::import: ''
-
-
-=back
-
-In all the cases indentation of lines shows the call tree, if bit 2 of
-C<frame> is set, then a line is printed on exit from a subroutine as
-well, if bit 4 is set, then the arguments are printed as well as the
-caller info, if bit 8 is set, the arguments are printed even if they
-are tied or references, if bit 16 is set, the return value is printed
-as well.
-
-When a package is compiled, a line like this
-
- Package lib/Carp.pm.
-
-is printed with proper indentation.