PHP has some pretty nifty built in debugging tools as for instance debug_print_backtrace() wich willl show the callstack starting where you place it..
More can be found at http://php.net/manual/en/ref.errorfunc.php
The above example will output something similar to:
#0 eval() called at [/tmp/include.php:5]
#1 a() called at [/tmp/include.php:17]
#2 include(/tmp/include.php) called at [/tmp/test.php:3]
#0 c() called at [/tmp/include.php:10]
#1 b() called at [/tmp/include.php:6]
#2 a() called at [/tmp/include.php:17]
#3 include(/tmp/include.php) called at [/tmp/test.php:3]
<?php // include.php file function a() { b(); } function b() { c(); } function c(){ debug_print_backtrace(); } a(); ?> <?php // test.php file // this is the file you should run include 'include.php'; ?>