NAME
Devel::CallTrace - See what your code's doing
SYNOPSIS
#!/usr/bin/perl -d:CallTrace
package foo;
sub bar { print "bar\n"; baz(); }
sub baz { print "boo\n"; }
foo::bar();
RATIONALE
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.
DB::sub
perl will automatically call DB::sub on each subroutine call and leave it up to us to dispatch to where we want to go.
Devel::CallTrace::called
This routine is called with two parameters:
- DEPTH
-
The integer "depth" that this call is being called at.
- PARAMS
-
A reference to the routine's @INC
To get at the subroutine that was being called, have a look at $DB::sub
BUGS
It uses the debugger. How could it not have bugs?
SEE ALSO
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
Copyright 2005 Jesse Vincent <jesse@bestpractical.com>
This module may be redistributed under the same terms as perl itself