Upload
angelo
View
77
Download
0
Tags:
Embed Size (px)
DESCRIPTION
The Perl Debugger. Issac Goldstand [email protected] 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
Citation preview
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