読者です 読者をやめる 読者になる 読者になる

centos5.11 php5.2 vim7.4 xdebug2.2.7 debugger.vimインストール手順

phpデバッグ環境作りたくて最初vdebugを入れようとしたんだけど自分の環境だとどーにもpythonのバージョンの関係で動かなかったため結局debugger.vimをインストールした。(もしかするとpython2.6がデフォルトのcentos6以降じゃないとダメなのかもしんない)

xdebugインストール

#最新版だとphp5.4以上じゃないとだめなので2.2.7を入れる
pecl install xdebug-2.2.7

#設定ファイルを作成
vi /etc/php.d/xdebug.ini
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

#再起動
service httpd restart

参考サイト
PHP5.3系にxdebugをインストールする際のあれこれ | サバカン屋テックブログ

vimpythonを有効にする

#とりあえず入れる
yum install python-devel

#有効になっているか確認
vim --version | grep python
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      -python3         +wildignore

#-pythonの場合、以下のオプションをつけてvimを再コンパイル
--enable-pythoninterp --with-python-config-dir=/usr/lib/python2.4/config

もしかしたらpython2.6を入れる必要があるかもしれんので念のためその手順

#python2.6インストール
yum --enablerepo=epel install python26 python26-devel

#以下のオプションをつけてvimを再コンパイル
--enable-pythoninterp --with-python-config-dir=/usr/lib/python2.6/config

参考サイト
Xdebug + VimでPHPのWebアプリをステップ実行してみた - Lounge Programmers Killer

debugger.vimインストール
http://www.vim.org/scripts/script.php?script_id=2508
からダウンロードして解凍して~/.vim/pluginに以下をコピー
plugin/debugger.vim
plugin/debugger.py

xdebug helperインストール
https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc?hl=ja

使い方
1. xdebug helperをデバッグにする
2. vim側でデバッグしたいソースでF5
3. ブラウザでそのソースのページにアクセスすればOK

使いそうなコマンド一覧
F2:ステップイン
F3:ステップオーバー
F4:ステップアウト
F5:実行
F6:デバッグ終了
F11:変数を全部表示?
F12:カーソルの変数を表示

,e:変数の中身を表示&変更

今のところ何故かブレークポイントで止まらないんだけど、それ以外は問題なさそうなのでvdebugを無理して入れようとする必要なかったかも。
→空行にBpを張っていたから止まらなかっただけぽい。それか一回ポートを9001に変更したから?(その後は9000に戻しても止まった)。もしポートを変えたい場合は、debugger.vimに定義されているポート番号を変更すること。
ブレークポイントは空行だけでなくコメントや複数行に跨る変数の定義とかでも止まってくれないので注意

変数の参照時に階層表示する設定
~/.vimrc

let g:debuggerTimeout = 20
let g:debuggerMaxDepth = 10

その他設定可能なパラメーターは.vim/plugin/debugger.vimを見ればわかる。

参考サイト
PHP Remote Debugging in VIM with XDebug – Dev Notes

16/4/26追記
デバッグで変数の中身を参照すると配列のキーが「EVAL_RESULT」になってしまう。stackoverflowを見た限りvdebugに変えろとあったので、解決方法はなさそう。

参考サイト
XDebug and VIM. Browsing array values - Stack Overflow

16/4/27追記
「EVAL_RESULT」になる件だけど、以下の修正を行ったらひとまず表示されたぽい。
~/.vim/plugin/debugger.py

#335行目:fullnameが''の場合nameをセット
#fullname = 'EVAL_RESULT'
fullname = name

16/5/6追記
またまた問題が。
どうやらデバッグ時に変数を参照した際、要素を32個までしか表示しないらしい。セットされているはずの値が表示されなくてビビった。以下を.vimrcに設定すればよい。

let g:debuggerMaxChildren = 200

低予算で始められるおすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html