Как я могу получить стек вызовов из фатальной ошибки? - PullRequest
3 голосов
/ 19 сентября 2009

Я получаю фатальную ошибку "Call to a member function on a non-object" в PHP-скрипте, но не могу точно отследить , где это происходит, или почему. Сообщение об ошибке практически бесполезно, так как описываемая строка работает в 99,9% случаев.

Есть ли способ получить текущий стек вызовов, отследить, какие вызовы выполняются до этой фатальной ошибки, или сделать что-нибудь еще, чтобы помочь отследить эту ошибку?

Ответы [ 4 ]

6 голосов
/ 19 сентября 2009

Я бы порекомендовал установить Xdebug на ваш сервер разработки. Это очень ценный инструмент в подобных случаях.

0 голосов
/ 26 мая 2011

пожалуйста, смотрите мой ответ и другие также для различных возможностей

Как мне перехватить PHP-фатальную ошибку

Очевидно, что это частично связано в том смысле, что оно ловит только фатальную ошибку. Вы можете изменить функцию, чтобы перехватывать ошибки другого типа. Отправной точкой для этого является:

if($error['type'] == 1){

Этот метод переопределяет вывод Xdebug, если он уже установлен.

С уважением сахунзай

0 голосов
/ 20 сентября 2009

Использование debug_print_backtrace() - http://us2.php.net/manual/en/function.debug-print-backtrace.php

0 голосов
/ 19 сентября 2009

Используйте это в предыдущей строке ошибки:

var_dump(debug_trace);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...