Go to the first, previous, next, last section, table of contents.
If you invoke perl with a `-d' switch, your script will be run
under a debugging monitor. It will halt before the first executable
statement and ask you for a command, such as:
- `h'
-
Prints out a help message.
- `T'
-
Stack trace.
- `s'
-
Single step. Executes until it reaches the beginning of another
statement.
- `n'
-
Next. Executes over subroutine calls, until it reaches the beginning of
the next statement.
- `f'
-
Finish. Executes statements until it has finished the current subroutine.
- `c'
-
Continue. Executes until the next breakpoint is reached.
- `c line'
-
Continue to the specified line. Inserts a one-time-only breakpoint at
the specified line.
- `<CR>'
-
Repeat last n or s.
- `n'
-
Single step around subroutine call.
- `l min+incr'
-
List `incr+1' lines starting at min. If min is
omitted, starts where last listing left off. If incr is omitted,
previous value of incr is used.
- `l min-max'
-
List lines in the indicated range.
- `l line'
-
List just the indicated line.
- `l'
-
List next window.
- `-'
-
List previous window.
- `w line'
-
List window around line
- `l subname'
-
List subroutine. If it's a long subroutine it just lists the beginning.
Use l to list more.
- `/pattern/'
-
Regular expression search forward for pattern; the final `/'
is optional.
- `?pattern?'
-
Regular expression search backward for pattern; the final
`?' is optional.
- `L'
-
List lines that have breakpoints or actions.
- `S'
-
Lists the names of all subroutines.
- `t'
-
Toggle trace mode on or off.
- `b line condition'
-
Set a breakpoint. If line is omitted, sets a breakpoint on the
line that is about to be executed. If a condition is specified,
it is evaluated each time the statement is reached and a breakpoint is
taken only if the condition is true. Breakpoints may only be set on
lines that begin an executable statement.
- `b subname condition'
-
Set breakpoint at first executable line of subroutine.
- `d line'
-
Delete breakpoint. If line is omitted, deletes the breakpoint on the
line that is about to be executed.
- `D'
-
Delete all breakpoints.
- `a line command'
-
Set an action for line. A multi-line command may be entered by
backslashing the newlines.
- `A'
-
Delete all line actions.
- `< command'
-
Set an action to happen before every debugger prompt. A multi-line command
may be entered by backslashing the newlines.
- `> command'
-
Set an action 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
backslashing the newlines.
- `V package'
-
List all variables in package. Default is `main'
package.
- `! number'
-
Redo a debugging command. If number is omitted, redoes the previous
command.
- `! -number'
-
Redo the command that was that many (number) commands ago.
- `H -number'
-
Display last number commands. Only commands longer than one
character are listed. If number is omitted, lists them all.
- `q'
-
- `^D'
-
Quit.
- `command'
-
Execute command as a perl statement. A missing semicolon will be
supplied.
- `p expr'
-
Same as
print DB'OUT expr
. The `DB'OUT' filehandle is opened
to `/dev/tty', regardless of where `STDOUT' may be redirected
to.
If you want to modify the debugger, copy `perldb.pl' from the perl
library to your current directory and modify it as necessary. (You'll
also have to put `-I.' on your command line.) You can do some
customization by setting up a `.perldb' file which contains
initialization code. For instance, you could make aliases like
these:
$DB'alias{'len'} = 's/^len(.*)/p length($1)/';
$DB'alias{'stop'} = 's/^stop (at|in)/b/';
$DB'alias{'.'} =
's/^\./p "\$DB\'sub(\$DB\'line):\t",\$DB\'line[\$DB\'line]/';
Go to the first, previous, next, last section, table of contents.