++ed by:
3 non-PAUSE users
Author image Igor Bujna


Devel::PDB - A simple Curses-based Perl DeBugger


    perl -d:PDB foo.pl


PerlDeBugger is a Curses-based Perl debugger with most of the essential functions such as monitoring windows for paddlist, call stack, custom watch expressions, etc. Suitable for debugging or tracing complicated Perl applications on the spot.

  File  View  Execution  Breakpoint  Settings  Help                              
  a.pl:5 ---------------------------------------------------------------------- 
|  use Devel::PDB;                                                             |
|  #!/usr/bin/perl                                                             |
|                                                                              |
|                                                                              |
|  my $a = test();                                                             |
|  print "$a\n";                                                               |
|                                                                              |
|  sub test {                                                                  |
|        my $hey = 10;                                                         |
|        my $guys_this_is_long = 20;                                           |
|        test2();                                                              |
|        2;                                                                    |
|  }                                                                           |
|                                                                              |
|  sub test2 {                                                                 |
  Auto --------------------------------   Watch ------------------------------- 
|$a                   undef            ||- no values -                         |
|                                      ||                                      |
|                                      ||                                      |
|                                      ||                                      |
 --------------------------------------  -------------------------------------- 


PerlDeBugger currently can:

  • step-over, step-in, step-out, run

  • set/remove breakpoint

  • Evaluate breakpoint

  • automatic display of lexical variables

  • add/remove custom watch expression

  • show/open compiled files

  • Stack Trace Window

  • Immediate Window for executing arbitrary perl statement

  • Other functionalities

KYES BINDING - standart key

WindowSource - F1

Switch to the Source Code Window

WindowLexical - F2

Switch to the Lexical Variable Window

WindowWatches - F3

Switch to the Watch Window

ViewSTDFile - F4

Views STDOUT or STDERR file

Continue - F5

Continue execution

StepOut - F6

Step Out

StepIn - F7

Step In

SteOver - F8

Step Over

Breakpoint - F9

Toggle Breakpoint. Set or remove breakpoint on cursor position.

Open main - top menu

FilesCompiled - F11

Show 'Compiled Files' Dialog

FilesOpened - F12

Show 'Opened Files' Dialog

Quit - Ctrl+Q, Ctrl+C

Quit the debugger

BreakpointCode - Ctrl+O

Add/Edit/Remove breakpoint with condition on given line. Can be also removed by F9 - Breakpoint

Refresh - Ctrl+N

Refresh all window contents

Export - Ctrl+Y

Export information to file from actual source and stack variables or watches

WatchExpression - Ctrl+W

Add watch expression

Restart - Ctrl+R

Restart program

RunCommand - Ctrl+P

Add commands to runned perl script

Arguments - Ctrl+A

View arguments(parameters) of runned program

ArgumentsEdit - Ctrl+E

Edit arguments(parameters) of runned program

EnviromentsEdit - Ctrl+M

Edit enviroments

Filebrowser - Ctrl+F

Find Perl module and load this module

WindowStack - Ctrl+T

View stack of runned program

ConfigSave - Ctrl+S

Save breakpoints and watches to config file

ConfigSave - Ctrl+L

Load breakpoints and watches from config file

ViewVariables - Ctrl+U

View special variables

ListBreakpoints - Ctrl+B

List all breakpoints in files and position

ClearBreakpoints -

Clear all breakpoints

ClearWatches -

Clear all watches

ClearAll - Ctrl+X

Clear all settings (breakpoints and watches)

VerticalPartsMin - {

Minimized window in vertical size

VerticalPartsMax - }

Maximized window in vertical size

HorizontalPartsMin - [

Minimized window in horizontal size

HorizontalPartsMax - ]

Maximized window in horizontal size

Source Code Window

Move the cursor


If you use VI, you will know


Search using a RegEx in the current opened file


Search Next


Search Previous


Goto a specific line

Lexical Variable Window / Watch Window

Move the cursor


Show the Data::Dumper output of the highlighted item in a scrollable dialog


Remove the highlighted expression (Watch Window only)

Compiled File Dialog / Opened File Dialog

Toggle the focus between the file list and the filter


Select the highlighted file or apply the filter to the file list

F6, Ctrl+S, Ctrl+L

Export everything from window to given file

Config files

Files will be created in directory when program is run . If in enviroment exist PDB_use_HOME than everything is created into ~/.PDB directory. Every file begin with program name and continue with:


Configuration files of saved brakpoints and watches


Output standart STD files from runned program


Configuration files of rebinded keys. For function keys is FX and for Cotrol keys is Control-X.

For example keys 'F10' for open Menu and keys 'Ctrl+C','Ctrl+Q','Q' for Quit.

Menu=F10 Quit=Control-C,Control-Q,Q


Configuration of own colours as defined in Curses::UI::Color. Each line has one definition, where frst is key and second is colour with space separattor.

For example set general foreground and background color as RED on WHITE:

-fg red -bg white




Ivan Yat-Cheung Wong <email (at) ivanwong.info>

Igor Bujna <igor.bujna (at) post.cz>


Copyright (C) 2007 by Ivan Y.C. Wong, Igor Bujna

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.