vimでPHPのデバッグ(ステップ実行)
2011年11月22日vim+プラグイン(remote PHP debugger)+xdebugの環境を作ることで、vim上でPHPのデバッグを実行できるようになる。
以下、簡単に環境構築とデバッグ方法を紹介。
【環境構築】
今回は、以下の環境にデバッグ環境を構築した
- CentOS 5.6
- vim 7.0
- php 5.2.6
以下のコマンドで、xdebugをインストール
# pecl install xdebug
インストール後、php.iniに以下の設定を追加する
$ sudo vim /etc/php.ini ... [zend] ; zend xdebug ; @see: http://freestyle.nvo.jp/archives/156 zend_extension = "/usr/lib/php/modules/xdebug.so" xdebug.remote_enable=On ;xdebug.remote_host=localhost ...
設定を反映させる為、Apacheを再起動。
phpinfo()を作成して、xdebugの設定があることを確認する。
コマンドで確認する場合は、以下のようにする。
$ php -i | grep xdebug xdebug xdebug support => enabled
【デバッグ】
デバッグ環境が整ったので、実際にデバッグしてみる。
サンプルとして、以下のスクリプトをデバッグ。
<?php function add($val) { return $val + 2; } $val = 1; $ret = add($val); echo $ret; ?>
vimで、スクリプトを開いて、「F5キー」を押すと、以下のメッセージが表示される。
-----------------------------------------------------------
waiting for a new connection on port 9000 for 5 seconds...
-----------------------------------------------------------
このメッセージが表示されている間に、ブラウザから該当スクリプトへアクセス。
その際、「XDEBUG_SESSION_START」のパラメータを付加してアクセスします。
http://localhost/test.php?XDEBUG_SESSION_START
アクセスすると、vimがデバッグモードになり、「F2」~「F4」でステップ実行が可能になる。
「F11」で、変数の内容を確認することも可能。
変数の内容は、「WATCH_WINDOW」に表示される。
「F6」で、デバッグモード終了。
ブレイクポイントの作成も可能で、「F5」でデバッグを始める前に、「:Bp」と入力すれば、そのカーソル位置をブレイクポイントとして実行が出来る。