Я отлаживаю расширение 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?