The Perl Debugger by ojp13483

VIEWS: 6 PAGES: 18

									The Perl Debugger


      Issac Goldstand
      isaac@cpan.org
      Mirimar Networks
      http://www.mirimar.net/
        Credits / For more info

 Based loosely on perldebtut
 Also, don’t forget perldeb
 Inside the debugger: h h or h [cmd]
         Before we even get to the
               debugger…
 Have you:
     Turned on warnings via use warnings or
      perl –w?
     Do you use strict wherever possible?
     Does your script pass syntax checking
      (perl –c)?
     Example 1 – Hello World

#!/usr/bin/perl

$var1 = ’Hello, world!’;
$var2 = “$varl\n”;

print $var2;
    When not to use the debugger

 Not every case needs the debugger
 The debugger would not have provided any
  significant help with the previous example
 It is important to use other tools to find
  problems
                What to use?

 perl5db.pl – The
  command line
  debugger
 GUI debugger – ptkdb
 ActiveState – PDK,
  Komodo
          Starting the debugger

 Called by perl –d
 Can be command line option: perl –d
  myscript.pl
 …or part of the shebang line:
  #!/usr/bin/perl -d
The MOST IMPORTANT
    COMMAND ™
      The MOST IMPORTANT
          COMMAND ™
 q – Quits the debugger
   The SECOND MOST
IMPORTANT COMMAND™
       The SECOND MOST
    IMPORTANT COMMAND™
 h – Displays help
              The text debugger

 Other common commands:
  v [line] – View around line (current line by
    default)
  x expr – Evaluates an expression (in list context)
  m expr – Shows methods that expr->can do
  s – Step into
  n – Step over
  c line – Set a “one time” breakpoint
      Working with variables &
             symbols
 M shows currently loaded modules + versions
 S shows currently available subroutines
 X / V shows variables in [current] package
              Looking around

 v – Shows a “block” of code, starting from
  current position
 l – shows a single line of code, starting from
  current position
 Either command takes an optional parameter
  of a line number
 . resets the line position to the current line
               Practical use

 Normal “command line” scripts
 CGI scripts via –debug pragma or command
  arguments
 mod_perl via Apache::DB
 Not helpful for XSUB debugging
                          GUIs

 ptkdb
 IDEs
 ActiveState PDK
 I’ve personally found the
  PDK to be very weak (while
  somewhat simpler to
  navigate, set breakpoints,
  etc)
                     Komodo

 ActiveState’s opensource-language IDE
 Costs $$$
 New version 3.0 just released with very complete
  GUI debug tools
 Includes supports for watches, conditional
  breakpoints, immediate pane, etc
 Includes support for simulating full CGI
  environment
The End



    Issac Goldstand
    <isaac@cpan.org>
    Mirimar Networks
    http://www.mirimar.net/

								
To top