PHP - debug_backtrace() падает - что я могу сделать?

Я посмотрел на сообщения, которые мог найти, но не нашел ответа, который, похоже, поможет. У меня есть подпрограмма, которая вызывает debug_backtrace() и затем циклически перебирает элементы, выводя их в хорошем формате для моего журнала. Это прекрасно работает в большинстве случаев.

В некоторых звонках система просто зависает. Предполагая следующее:

$curStack = debug_backtrace();
foreach ($curStack as $myStackLevel) {
  $test = gettype($myStackLevel);
  // code to write out contents of $myStackLevel
  // Log that we are getting the next item
}
// Log that the foreach is done

В некоторых случаях PHP просто умирает - я вижу журнал, в котором он обработал текущий элемент, но он падает в строке foreach (или, по крайней мере, до того, как я могу программно увидеть контекст следующего $myStackLevel.

В одном сообщении я увидел кое-что о рекурсивных вызовах и использовании сериализации, но я не могу использовать сериализацию (я использую PDO и получил сообщение "Вы не можете сериализовать или десериализовать экземпляры PDO").

Самое смешное, что в случае сбоя система ошибок PHP по-прежнему обеспечивает полный дамп стека.... (Я обнаружил это, когда попытался использовать сериализацию).

Любая помощь приветствуется....

Спасибо,

JustMeToo

1 ответ

Вы пытаетесь вывести содержимое object элементы? Вероятно, у вас есть рекурсивный граф объектов, который заставляет процесс PHP либо переполнять стек, либо запускаться слишком долго.

Другие вопросы по тегам