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 либо переполнять стек, либо запускаться слишком долго.