2
所以,我知道我具體的錯誤是什麼(致命錯誤:允許內存大小134217728字節用盡(試圖分配71字節)以及是什麼導致它
我不是在尋找解決方案
我試圖學習的是如何將$ _SESSION和$ _REQUEST和堆棧跟蹤轉儲到文件中,如果發生此類錯誤,或者如果它甚至有可能如何調試致命錯誤:允許XXXX字節耗盡的內存大小(試圖分配VVV字節)
所以,我知道我具體的錯誤是什麼(致命錯誤:允許內存大小134217728字節用盡(試圖分配71字節)以及是什麼導致它
我不是在尋找解決方案
我試圖學習的是如何將$ _SESSION和$ _REQUEST和堆棧跟蹤轉儲到文件中,如果發生此類錯誤,或者如果它甚至有可能如何調試致命錯誤:允許XXXX字節耗盡的內存大小(試圖分配VVV字節)
這是不可能的,沒有額外的模塊 - 一旦你達到內存限制,它會立即崩潰,但是,你可以安裝Xdebug模塊,並讓它記錄一個堆棧跟蹤,就像你指示的那樣。
下面是與Xdebug的配置你想要的確切轉儲一些信息:http://xdebug.org/docs/stack_trace
你可以告訴了XDebug你想具體的變量和超級全局轉儲。這應該符合你的需求。
同樣,你可以安裝Newrelic,但是和xdebug一樣,它需要加載一個共享模塊,並且你會獲得性能上的提升(在這種情況下它不是免費的)。
我的目標是調試生產環境。不知道我會想要讓x-debug永久運行在那裏。我需要看看你的建議和我需要的是否有臨時解決方案。 –
@ ItayMoav-Malimovka我不會讓xdebug最大限度地運行在生產環境中,但它是一個可以輕鬆打開/關閉以進行故障排除的共享擴展模塊。不需要編譯到php中,只需要重新加載apache或php-fpm – Ray
@ ItayMoav-Malimovka如果這總是發生在代碼的特定行中,那麼您可以將所需的東西轉儲到錯誤日誌中在那之前。如果memory_get_usage()接近(比如80%)達到極限 – Ray