0

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_ZEND0 に戻すと、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_ZEND2に設定してPHPをコンパイルする適切な方法は何ですか?

4

1 に答える 1

2

configure スクリプトの後に環境変数を設定しても、./configure には影響しません。configure スクリプトの変数を設定します。

CFLAGS="-DDEBUG_ZEND=2" ./configure --enable-debug
于 2010-08-20T21:44:39.377 に答える