Backtrace сбрасывает много мусора, который вам не нужен. Это занимает очень много времени, трудно читать. Все, что вы обычно когда-либо хотите, это "что называется, откуда?" Вот простое решение статической функции. Я обычно помещаю его в класс, называемый 'debug', который содержит все мои вспомогательные функции отладки.
class debugUtils {
public static function callStack($stacktrace) {
print str_repeat("=", 50) ."\n";
$i = 1;
foreach($stacktrace as $node) {
print "$i. ".basename($node['file']) .":" .$node['function'] ."(" .$node['line'].")\n";
$i++;
}
}
}
Вы называете это так:
debugUtils::callStack(debug_backtrace());
И выдает результат примерно так:
==================================================
1. DatabaseDriver.php::getSequenceTable(169)
2. ClassMetadataFactory.php::loadMetadataForClass(284)
3. ClassMetadataFactory.php::loadMetadata(177)
4. ClassMetadataFactory.php::getMetadataFor(124)
5. Import.php::getAllMetadata(188)
6. Command.php::execute(187)
7. Application.php::run(194)
8. Application.php::doRun(118)
9. doctrine.php::run(99)
10. doctrine::include(4)
==================================================