2010-08-20 2 views
0

Я отладки расширение PHP и нашел это время тыкать через исходный PHP код:Компиляция PHP с модифицированным уровнем DEBUG_ZEND

#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» к началу команда конфигурирования, сделал «сделать чистую», то «сделать» ...

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

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

ответ

2

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

CFLAGS="-DDEBUG_ZEND=2" ./configure --enable-debug 
Смежные вопросы