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"
、シバンの直後に追加configure
して、コンパイルできました。ただし、スクリプトの実行時に refcounts に関する追加の出力が表示されないため、実際に何かが行われたとは確信していません。
DEBUG_ZEND
2に設定してPHPをコンパイルする適切な方法は何ですか?