Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

devel::calltrace(3pm) [debian man page]

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 "; baz(); } sub baz { print "boo "; } 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 perl v5.10.1 2008-07-07 Devel::CallTrace(3pm)

Check Out this Related Man Page

Trace(3pm)						User Contributed Perl Documentation						Trace(3pm)

NAME
Devel::Trace - Print out each line before it is executed (like "sh -x") SYNOPSIS
perl -d:Trace program DESCRIPTION
If you run your program with "perl -d:Trace program", this module will print a message to standard error just before each line is executed. For example, if your program looks like this: #!/usr/bin/perl print "Statement 1 at line 4 "; print "Statement 2 at line 5 "; print "Call to sub x returns ", &x(), " at line 6. "; exit 0; sub x { print "In sub x at line 12. "; return 13; } Then the "Trace" output will look like this: >> ./test:4: print "Statement 1 at line 4 "; >> ./test:5: print "Statement 2 at line 5 "; >> ./test:6: print "Call to sub x returns ", &x(), " at line 6. "; >> ./test:12: print "In sub x at line 12. "; >> ./test:13: return 13; >> ./test:8: exit 0; This is something like the shell's "-x" option. DETAILS
Inside your program, you can enable and disable tracing by doing $Devel::Trace::TRACE = 1; # Enable $Devel::Trace::TRACE = 0; # Disable or Devel::Trace::trace('on'); # Enable Devel::Trace::trace('off'); # Disable "Devel::Trace" exports the "trace" function if you ask it to: import Devel::Trace 'trace'; Then if you want you just say trace 'on'; # Enable trace 'off'; # Disable TODO
o You should be able to send the trace output to the filehandle of your choice. o You should be able to specify the format of the output. o You should be able to get the output into a string. We'll see. LICENSE
Devel::Trace 0.11 and its source code are hereby placed in the public domain. Author Mark-Jason Dominus (C<mjd-perl-trace@plover.com>), Plover Systems co. See the C<Devel::Trace.pm> Page at http://www.plover.com/~mjd/perl/Trace for news and upgrades. perl v5.14.2 2012-02-16 Trace(3pm)
Man Page