Хобрук: Ваш путь к мастерству в программировании

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

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

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

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


Ответы:


1

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

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

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

если вы действительно хотите отладить это, используйте php "самоотладчики" в этом случае, поместите

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

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

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

12.11.2014

2

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

http://www.xdebug.org/

12.11.2014
Новые материалы

Получение стоковых обновлений с помощью Python
Для начинающего финансового аналитика Введение Описание: Этот проект Python создает скрипт для получения текущих обновлений акций с финансового веб-сайта Yahoo. Для этого проекта мы..

Это все, что вам нужно знать о Kotlin в 2022 году
Добро пожаловать! Kotlin — это язык программирования, популярность которого, кажется, растет, его действительно можно использовать для создания чего угодно, и если вы хотите узнать о Kotlin,..

Текстовый графический интерфейс с Lanterna на Java
Мой опыт работы с компьютерами (и текстовыми графическими пользовательскими интерфейсами) начался еще в восьмидесятых, когда я был ребенком, на дне рождения друга. Это был «новенький» Amstrad..

Перезарядите свой мозг: умопомрачительный потенциал мозговых компьютерных интерфейсов
Способность читать свои мысли и управлять объектами разумом долгое время были предметом человеческого любопытства, ограниченного областью научной фантастики… то есть до сих пор? С технологией,..

Основы C# — Нулевой оператор объединения (??)
Оператор ?? называется null-coalescing operator . Этот оператор используется для предоставления значения по умолчанию, если значение операнда в левой части оператора равно null ...

Сравнение номеров версий в C++ с использованием синтаксического анализа строк
Номера версий обычно используются для обозначения развития или обновлений программного обеспечения или любого другого продукта. При работе с номерами версий в C++ может быть полезно сравнить две..

В мир искусственного интеллекта…
ИИ — это новое топливо в современном мире. Куда бы вы ни обратились, с кем бы вы ни разговаривали — они, как правило, упоминают об ИИ хотя бы раз в ходе разговора. ИИ гудит повсюду. У каждого..