2

我查看了我能找到的消息,但没有找到似乎有帮助的答案。我有一个调用 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

4

1 回答 1

2

您是否尝试输出元素的内容object?您可能有一个递归对象图,导致 PHP 进程溢出堆栈或运行时间过长。

于 2011-02-17T02:35:09.453 回答