память — получить полную трассировку стека для фатальной ошибки php в одну строку

Я получил следующее сообщение об ошибке в моих журналах ошибок php:

Неустранимая ошибка PHP: допустимый объем памяти 1073741824 байта исчерпан (попытка выделить 5 байтов) в /lib/Zend/Db/Statement/Pdo.php в строке 284

Однако мне нужна полная трассировка стека, есть идеи, как ее получить?

2

Решение

Похоже, ваш конфиг PHP (php.ini) не позволяет использовать более 1 ГБ памяти, что очень важно для сценариев PHP.

Убедитесь, что вы не выполняете бесконечный цикл. Когда выполняется бесконечный цикл с большими файлами или большими запросами к базе данных, может случиться так, что память заполнится до того, как скрипт перестанет работать max_execution_time ошибка.

Если ваш провайдер позволяет, Вы можете расширить использование памяти дать это ini_set("memory_limit","2G") или больше, если необходимо (не рекомендуется).

если вы действительно хотите отлаживать это, используйте php «self-debuggers» в этом случае, введите

echo "<pre>".print_r(debug_backtrace(),true)."</pre>";
exit;

до того, как произошла ошибка, отображается полное дерево стека с аргументами, методами, …

Вы также можете сохранить вывод debug_backtrace() в вар и обрабатывать это самостоятельно.

1

Другие решения

Вы можете увидеть Xdebug с трассировкой стека.

http://www.xdebug.org/

0