DOKK / manpages / debian 12 / libdevel-calltrace-perl / Devel::CallTrace.3pm.en
Devel::CallTrace(3pm) User Contributed Perl Documentation Devel::CallTrace(3pm)

Devel::CallTrace - See what your code's doing

#!/usr/bin/perl -d:CallTrace

package foo;

sub bar {
print "bar\n";
baz(); }

sub baz {
print "boo\n"; }

foo::bar();

There are a number of perl modules in the CPAN that are designed to trace a program's execution as it runs. Each uses a different trick to do its job, but none of them quite met my needs. The technique this module uses is quite simple and seems to be quite robust.

perl will automatically call DB::sub on each subroutine call and leave it up to us to dispatch to where we want to go.

This routine is called with two parameters:

The integer "depth" that this call is being called at.
A reference to the routine's @INC

To get at the subroutine that was being called, have a look at $DB::sub

It uses the debugger. How could it not have bugs?

perldebguts, DB, a licensed therapist.

trace - Uses source filters. Scares me.

Devel::TraceCalls - Very robust API. The code seems to do all sorts of scary magic

Debug::Trace - Uses symbol table magic to wrap your functions.

Devel::TRaceFuncs - Requires developers to instrument their source files.

Copyright 2005 Jesse Vincent <jesse@bestpractical.com>

This module may be redistributed under the same terms as perl itself

2022-12-04 perl v5.36.0