Chapter 44. Debugging and Devel::

Randy J. Ray

Tip

Since the initial publication of this article, the Devel::* group of modules has flourished, now numbering well over 60 modules. However, all of the information in this article remains current.

You might have learned about Perl’s -d switch, which launches Perl’s internal symbolic debugger. If not, read the perldebug documentation and get started; it lets you set breakpoints and step through your programs line-by-line. The debugger is one of Perl’s most attractive tools for developers, in part because it’s not so much a debugger as a debugging system into which you can place the debugger of your choice. The debuggers can be found in the Devel:: category of the CPAN. In this article, I’d like to describe some of the modules you can find there (listed in Table 44-1).

Table 44-1. Some of the Devel:: modules

Module

Purpose

Devel::DProf

Reports the time used by the program and its subroutines.

Devel::Peek

Displays Perl values and structures.

Devel::SmallProf

Profiles individual lines.

Devel::TraceFuncs

Provides call sequences of subroutines.

Devel::Symdump

Provides symbolic dumps for variables and symbol tables.

Devel::WeakRef

Creates weak references to objects.

Devel::DumpStack

Displays the current subroutine’s stack in human-readable format.

Devel::DebugInit

Creates initialization files for C/C++ symbolic debuggers.

Devel::Coverage

Coverage analysis of Perl scripts and libraries.

Devel::CoreStack

Generates a stack trace from a core dump using the best available ...

Get Computer Science & Perl Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.