Devel::CallTrace(3pm) | User Contributed Perl Documentation | Devel::CallTrace(3pm) |
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
2022-12-04 | perl v5.36.0 |