Contents /
Previous /
Next
Debugging
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.
- 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.
<dt>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 commands ago.
- H -number
- Display last n commands.
Only commands longer than one character are listed.
If number is omitted, lists them all.
- q or ^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.