PHP - debug_backtrace () падает - что я могу сделать? - PullRequest
2 голосов
/ 17 февраля 2011

Я посмотрел на сообщения, которые смог найти, но не нашел ответа, который, похоже, поможет.У меня есть подпрограмма, которая вызывает 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 по-прежнему обеспечивает полный дамп стека .... (Я обнаружил это, когда пытался использовать serialize).

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

Спасибо,

JustMeToo

1 Ответ

2 голосов
/ 17 февраля 2011

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

...