Самый быстрый способ определить, где Сценарий PHP выходит

Текущая альфа из react-cache@2.0.0-alpha.1 не совместима с недавно опубликованными react@16.8.0-alpha.0 и react-dom@16.8.0-alpha.0.

Понижение до react@16.7.0-alpha.1 и react-dom@16.7.0-alpha.1 до выпуска новой совместимой альфа-версии react-cache.

12
задан 7 revs, 3 users 80% 10 August 2013 в 06:45
поделиться

8 ответов

С некоторым вдохновением от нерабочего, но все еще правильное направление отвечает от RoBorg, я использовал следующий код в начале:

function shutdown() {
    global $dbg_stack_a;
    print_r($dbg_stack_a);
}
register_shutdown_function('shutdown');

И затем я сделал глобальную условную точку останова (глобальный =, точка останова оценена на каждой строке), используя то, что она может выполнить оценку канавки кода () со следующим "условием":

eval('
global $dbg_stack_a, $dbg_stack_b, $dbg_stack_c;
$dbg_stack_a = $dbg_stack_b;
$dbg_stack_b = $dbg_stack_c;
$dbg_stack_c = debug_backtrace();
return false;
')

Вероятно, не быстро, но добивается цели! Используя это я смог определить точный файл и местоположение строки, которое повысило, умирают (). (Этот пример работает в NuSphere.)

3
ответ дан 2 December 2019 в 21:46
поделиться

Не забывайте к grep для "выхода" также.

0
ответ дан 2 December 2019 в 21:46
поделиться

Можно использовать интерактивный отладчик для продвижения через код, пока Вы не достигаете точки выхода. Кроме этого, я думаю, что Вы - до grep'ing код для exit|die.

0
ответ дан 2 December 2019 в 21:46
поделиться
grep -n die filename
0
ответ дан 2 December 2019 в 21:46
поделиться

Добавьте это к вершине файла:

function shutdown()
{
    print_r(debug_backtrace());
}


register_shutdown_function('shutdown');

См. register_ shutdown_function ()

0
ответ дан 2 December 2019 в 21:46
поделиться

Также проверьте ошибку ___ журналы для"memory_limit"ошибки в Apache error_log.

Предел памяти> = 10M Предупреждение: (Установите это на 10M или больше в Вашем файле php.ini),

По моему опыту, сценарии внезапно заканчиваются, не предупреждая или уведомление, когда это происходит.

0
ответ дан 2 December 2019 в 21:46
поделиться

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

но для быстрого и грязного решения grep/find, как упомянуто выше сделает справедливо.

0
ответ дан 2 December 2019 в 21:46
поделиться

Удостоверьтесь, что ошибки отображены в Вашей среде разработки (не производство).

0
ответ дан 2 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: