Devel::YCallTrace - Track and report function calls
fully automated mode (debugger style):
perl -d:YCallTraceDbg your-script perl -d:YCallTraceDbg sample_scripts/fib_random_die.pl 9
or explicit initialization in your script:
require Devel::YCallTrace; Devel::YCallTrace::init();
require Devel::YCallTrace; Devel::YCallTrace::init( title => "$0 @ARGV" );
Devel::YCallTrace traces function calls and then present a nice html report.
The log goes into SQLite database /tmp/y_call_trace/yct.db
To view the report, run
and point your browser to the url shown.
Note that at the moment there are two modules: Devel::YCallTrace and Devel::YCallTraceDbg. Devel::YCallTrace do the main job using Aspect. Devel::YCallTraceDbg is a simple frontend to Devel::YCallTrace to make it possible to use it like a custom debugger (-d:YCallTraceDbg).
I don't particularly like this system of two modules, but I haven't found another appropriate and reliable way to initialize Devel::YCallTrace at the right moment when using it in automated mode (initialization must be done just before the beginning of execution). And I don't feel like using debugger hooks in Devel::YCallTrace. Any advice how to resolve this conflict is welcome!