perldb-ui - Perl Development Environment
Description: Perl Development Environment

Next: inf-perl, Previous: perlcritic, Up: Top

## 23 Perl Debugger

perldb provide the minimal debugger interface in emacs. `perldb-ui.el` try to extend it more like gdb-ui. Not finished yet. But all interface will not change too much in future.

The main idea to communicate with perldb process is using .perldb to add a batch of subroutines to call in emacs. With those subroutines, it is easier to get information from the process.

— User Option: perldb-many-windows

> If non-nil, display layout in `perldb-window-configuration'.

— User Option: perldb-use-separate-io-buffer

> Non-nil means display output from the debugged program in a separate buffer.

— Command: perldb-many-windows

> Toggle the number of windows in the basic arrangement. With arg, display additional buffers iff arg is positive.

— Command: perldb-restore-windows

> Restore the basic arrangement of windows used by perldb-ui. This arrangement depends on the value of `perldb-many-windows'.

— Command: perldb-save-window-configuration

> Save current window configuration as default. With prefix argument, just setup for current session.

perl5db provides a convenient command line interface. Most case, it is more quick using command than calling an emacs command. If you want control debugger in source buffer, maybe turn on `perldb-gud-mode` is a good choice.

`n`
  `gud-next` - Step one line (skip functions).
`SPC`
  `gud-next` - Step one line (skip functions).
`s`
  `gud-step` - Step one source line with display.
`u`
  `gud-until` - Continue to current line.
`r`
  `gud-return` - Return from current subroutine.
`c`
  `gud-cont` - Continue with display.
`b`
  `gud-break` - Set breakpoint at current line.
`d`
  `gud-remove` - Remove breakpoint at current line
`p`
  `gud-print` - Evaluate perl expression at point.
`x`
  `gud-dump` - Dumper data
`l`
  `gud-refresh` - Fix up a possibly garbled display, and redraw the arrow.
`q`
  `perldb-gud-mode` - quit perldb-gud-mode.

Know Bugs

- You cannot run two or more debugger at the same time. The global variables may conflict.
- Sometimes may not run stable. You may have to restart the debugger.