2011-02-16 81 views
2

我看了看我能找到的消息,但沒有找到似乎有幫助的答案。我有一個調用debug_backtrace()的例程,然後循環遍歷元素,以我的日誌格式輸出它們。這在大多數情況下工作正常。PHP - 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線(或至少之前,我可以編程看到的contects下一個$ myStackLevel

在這裏的一條消息中,我看到了一些關於遞歸調用和使用序列化,但我不能使用序列化(我使用PDO,並有消息「你不能序列化或反序列化PDO實例」)

有趣的是,如果它崩潰了,PHP錯誤系統仍然提供堆棧的完整轉儲k ....(當我嘗試使用序列化時,我發現了這一點)。

任何幫助表示讚賞....

感謝,

JustMeToo

+0

您運行的是哪個版本的PHP?如果這是一個實際的PHP錯誤,升級可能會有所幫助。 – Dave 2011-02-16 23:02:50

+0

我正在運行PHP 5.2.10。我打算去5.3.x,但不能直到其他問題得到解決.... – JustMeToo 2011-02-17 00:48:02

回答

2

你們是不是要輸出的object元素的內容是什麼?很可能您有一個遞歸對象圖,導致PHP進程溢出堆棧或運行時間過長。