Распечатайте стек вызовов PHP

IMO очевидная читаемая версия сначала, пока уровень не измерен и более быстрая версия, требуется.

240
задан Justin 14 September 2009 в 07:22
поделиться

6 ответов

Если вы хотите сгенерировать обратную трассировку, вам нужно найти debug_backtrace и / или debug_print_backtrace .


Например, первый будет , получите такой массив (цитируя руководство) :

array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}


Очевидно, они не будут сбрасывать буфер ввода-вывода, но вы можете сделать это самостоятельно, используя flush и / или ob_flush .

(см. справочную страницу первого, чтобы узнать, почему "и / или" ;-))

120
ответ дан 23 November 2019 в 03:16
поделиться

Вы можете посмотреть debug_backtrace или, возможно, debug_print_backtrace .

1
ответ дан 23 November 2019 в 03:16
поделиться

debug_backtrace ()

1
ответ дан 23 November 2019 в 03:16
поделиться

Используйте debug_backtrace , чтобы получить обратную трассировку того, какие функции и методы были вызваны и какие файлы были включены, что привело к тому, что debug_backtrace имеет

3
ответ дан 23 November 2019 в 03:16
поделиться
var_dump(debug_backtrace());

Это то, что вам нужно?

8
ответ дан 23 November 2019 в 03:16
поделиться

См. debug_print_backtrace . Я думаю, вы можете потом коллировать flush , если хотите.

6
ответ дан 23 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: