vimでPHPのデバッグ(ステップ実行)

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」と入力すれば、そのカーソル位置をブレイクポイントとして実行が出来る。

 

参考: http://freestyle.nvo.jp/archives/156