我查看了我能找到的消息,但没有找到似乎有帮助的答案。我有一个例程调用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
答案 0 :(得分:2)
您是否尝试输出object
元素的内容?您可能有一个递归对象图,导致PHP进程溢出堆栈或运行时间太长。