PHP5.4.4 で phpdbg を動かしてみた (NG)

phpdbg aims to be a lightweight, powerful,
easy to use debugging platform for PHP5.4+

とあるので、PHP5.4 も対応してると期待して、Debian Wheezy 環境に入れてみた。

build

~/src/php/php-5.4.4$ cd sapi/
~/src/php/php-5.4.4/sapi$ git clone https://github.com/krakjoe/phpdbg
<略>
~/src/php/php-5.4.4$ ./config.nice
-bash: ./config.nice: そのようなファイルやディレクトリはありません
~/src/php/php-5.4.4$ ./configure
<略>
~/src/php/php-5.4.4$ make -j8
<略>
~/src/php/php-5.4.4$ sudo make install-phpdbg
[sudo] password for yoya:
Installing phpdbg binary:         /usr/local/bin/

config.nice が無いので configure 実行したら何となく phpdbg の実行ファイルが出来た。help はきちんと表示する。

break 効かないかも?

こちらのブログを参考に。

<?php
$a = 1 + 2;
echo $a;
yoya@sakurai:~$ phpdbg  -e sample.php
[Welcome to phpdbg, the interactive PHP debugger, v0.3.0]
To get help using phpdbg type "help" and press enter
[Please report bugs to <http://github.com/krakjoe/phpdbg/issues>]
phpdbg> compile
[Attempting compilation of /home/yoya/sample.php]
[Success]
phpdbg> print exec
[Context /home/yoya/sample.php]
        L0-0 {main}() /home/yoya/sample.php
                L2      0x7f6c901d1c60 ZEND_ADD                       C0                   C1                   @0
                L2      0x7f6c901d1c90 ZEND_ASSIGN                    $a                   @0                   @1
                L3      0x7f6c901d1cc0 ZEND_ECHO                      $a                   <unused>             <unused>
phpdbg> break line 3
[Breakpoint #0 added at line 3]
phpdbg> run
3phpdbg>

アレレ。L3 で止まらない。

初めの勘違い

  • PHP 拡張のノリで入れようとしてた
~/src/php/krakjoe-phpdbg-f06ac6a$ phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
~/src/php/krakjoe-phpdbg-f06ac6a$ ./configure
<略>
~/src/php/krakjoe-phpdbg-f06ac6a$ make

Build complete.
Don't forget to run 'make test'.

~/src/php/krakjoe-phpdbg-f06ac6a$ make install
Installing shared extensions:     /usr/lib/php5/20100525/
cp: cannot stat `modules/*': No such file or directory
make: *** [install-modules] エラー 1
  • 失敗の原因。
~/src/php/krakjoe-phpdbg-f06ac6a$ grep modules: Makefile
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
install-modules: build-modules
~/src/php/krakjoe-phpdbg-f06ac6a$ grep -A 1 ^PHP_MODULE Makefile
PHP_MODULES =
PHP_ZEND_EX =

PHP 拡張じゃければ、そりゃそうですね。。