PHP - debug_backtrace()崩溃 - 我该怎么办?

时间:2011-02-16 23:00:04

标签: 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 个答案:

答案 0 :(得分:2)

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