vimでPHPのデバッグ(ステップ実行)
2011年11月22日vim+プラグイン(remote PHP debugger)+xdebugの環境を作ることで、vim上でPHPのデバッグを実行できるようになる。
以下、簡単に環境構築とデバッグ方法を紹介。
【環境構築】
今回は、以下の環境にデバッグ環境を構築した
- CentOS 5.6
- vim 7.0
- php 5.2.6
以下のコマンドで、xdebugをインストール
[shell]
# pecl install xdebug
[/shell]
インストール後、php.iniに以下の設定を追加する
[shell]
$ 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
…
[/shell]
設定を反映させる為、Apacheを再起動。
phpinfo()を作成して、xdebugの設定があることを確認する。
コマンドで確認する場合は、以下のようにする。
[shell]
$ php -i | grep xdebug
xdebug
xdebug support => enabled
[/shell]
【デバッグ】
デバッグ環境が整ったので、実際にデバッグしてみる。
サンプルとして、以下のスクリプトをデバッグ。
[php]
<?php
function add($val) {
return $val + 2;
}
$val = 1;
$ret = add($val);
echo $ret;
?>
[/php]
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」と入力すれば、そのカーソル位置をブレイクポイントとして実行が出来る。