Компиляция PHP с измененным уровнем DEBUG_ZEND - PullRequest
0 голосов
/ 20 августа 2010

Я отлаживаю расширение PHP и обнаружил это во время работы с исходным кодом PHP:

#if DEBUG_ZEND>=2
    printf("Reducing refcount for %x (%x): %d->%d\n", *zval_ptr, zval_ptr, Z_REFCOUNT_PP(zval_ptr), Z_REFCOUNT_PP(zval_ptr) - 1);
#endif

Поэтому я хочу скомпилировать с DEBUG_ZEND, установленным в 2. В Zend/zend_compile.h я увидел:

#define DEBUG_ZEND 0

Вместо этого я отредактировал это значение равным 2, а затем попробовал обычное:

./configure --enable-debug
make

make некоторое время делает свое дело, но затем я вижу кучу Reducing refcount for ... сообщения и затем make завершается ошибкой:

make: *** [ext/phar/phar.phar] Error 255

Если я установлю DEBUG_ZEND обратно в 0, PHP скомпилируется нормально.Единственная ссылка, которую я смог найти на DEBUG_ZEND, была в этом отчете об ошибке:

http://bugs.php.net/bug.php?id=45761

Этот фрагмент выглядел уместно:

Я перенастроил, добавив CFLAGS= "- DDEBUG_ZEND = 2" в начале команды настройки, сделал 'make clean', затем 'make' ...

Поэтому я добавил CFLAGS="-DDEBUG_ZEND=2" сразу после shebang в configure и смог скомпилировать.Тем не менее, я не вижу никакого дополнительного вывода о refcounts при запуске моих скриптов, поэтому я не уверен, что он что-то сделал.

Каков правильный способ компиляции PHP с DEBUG_ZEND, установленным в 2?

1 Ответ

2 голосов
/ 21 августа 2010

Если вы установите переменную среды после скрипта configure, это не повлияет на ./configure.Вы хотите установить переменную для скрипта конфигурирования.

CFLAGS="-DDEBUG_ZEND=2" ./configure --enable-debug
...