1 / 18

The Perl Debugger

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:

angelo
Download Presentation

The Perl Debugger

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Perl Debugger Issac Goldstand isaac@cpan.org Mirimar Networks http://www.mirimar.net/

  2. Credits / For more info • Based loosely on perldebtut • Also, don’t forgetperldeb • Inside the debugger: h horh [cmd]

  3. 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)?

  4. Example 1 – Hello World #!/usr/bin/perl $var1 = ’Hello, world!’; $var2 = “$varl\n”; print $var2;

  5. 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

  6. What to use? • perl5db.pl – The command line debugger • GUI debugger – ptkdb • ActiveState – PDK, Komodo

  7. 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

  8. The MOST IMPORTANT COMMAND ™

  9. The MOST IMPORTANT COMMAND ™ • q – Quits the debugger

  10. The SECOND MOST IMPORTANT COMMAND™

  11. The SECOND MOST IMPORTANT COMMAND™ • h – Displays help

  12. 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

  13. Working with variables & symbols • M shows currently loaded modules + versions • S shows currently available subroutines • X / V shows variables in [current] package

  14. 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

  15. Practical use • Normal “command line” scripts • CGI scripts via –debug pragma or command arguments • mod_perl via Apache::DB • Not helpful for XSUB debugging

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

  17. 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

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

More Related