the perl debugger

Post on 02-Feb-2016

77 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

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 dos – Step inton – Step overc 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/

top related