Проблема установки xDebug на Mac - PullRequest
0 голосов
/ 23 ноября 2018

Я следую https://xdebug.org/docs/install рекомендациям

Когда я запускаю sudo make test В моем MAC 2 установлены версии PHP PHP5 и PHP7, как того требует проект.

PHP         : /usr/local/php5/bin/php 
PHP_SAPI    : cli
PHP_VERSION : 7.2.7

Это дает ниже ошибку

=====================================================================
EXPECTED FAILED TEST SUMMARY
---------------------------------------------------------------------
Test for bug #1530: Code coverage incorrect for last code line in a loop [tests/bug01530.phpt]  XFAIL REASON: PHP bug #76046: PHP generates "FE_FREE" opcode on the wrong line.
=====================================================================

You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it.  You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: 

Я пробовал 2-3 раза, но такая же проблема возникает.

1 Ответ

0 голосов
/ 31 декабря 2018

причина неудачи теста очевидна:

ПРИЧИНА XFAIL: ошибка PHP # 76046 : PHP генерирует код операции "FE_FREE" в неправильной строке.

вам нужно будет исправить zend_compile.c в исходном коде PHP (или дождаться исправленной версии).без исправления zend_compile.c результаты тестового покрытия могут быть неточными, но, тем не менее, обычная отладка должна работать.make test не будет проверять это, когда xdebug не будет частично полагаться на него (в заголовке теста даже явно указывается, почему он проверяет наличие ошибки).вот diff , который добавляет CG(zend_lineno) = ast->lineno;.это «исправляет проблему на 100%», а не только ее симптомы:

index f1dd49a..9c0893b 100644 (file)
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4807,6 +4807,7 @@ void zend_compile_foreach(zend_ast *ast) /* {{{ */

        zend_end_loop(opnum_fetch, &reset_node);

+       CG(zend_lineno) = ast->lineno;
        opline = zend_emit_op(NULL, ZEND_FE_FREE, &reset_node, NULL);
}
/* }}} */

эта ошибка затрагивает PHP 7.0, 7.1, 7.2 - PHP 5.x по крайней мере не сообщалось.поскольку это не ошибка xdebug, установка даже при неудачном тесте не должна сделать ничего хуже, чем это уже есть.для установки xdebug, это не sudo make test, а make && sudo make install (только make install требуется sudo).

...