vimを使ってPHPをデバッグする(xdebug+debugger)

以前xdebugのインストールを紹介しました。

このxdebugがインストールされていることが前提です。

WindowsのeclipseからLinuxのPHPをリモートデバッグする(1)Linuxにxdebuをインストールする

debuggerをインストールする

///usr/local/srcに移動
[root@centos etc]# cd /usr/local/src

//wgetでdebuggerを取得
[root@centos src]# wget http://www.vim.org/scripts/download_script.php?src_id=7285
--15:31:56--  http://www.vim.org/scripts/download_script.php?src_id=7285
www.vim.org をDNSに問いあわせています... 216.34.181.97
www.vim.org|216.34.181.97|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14853 (15K) [application/octetstream]
Saving to: `debugger.zip'

100%[================================================================================================================================>] 14,853      30.5K/s   in 0.5s

15:31:57 (30.5 KB/s) - `debugger.zip' を保存しました [14853/14853]

//解凍
[root@centos src]# unzip debugger.zip
Archive:  debugger.zip
   creating: plugin/
  inflating: plugin/.DS_Store
   creating: __MACOSX/
   creating: __MACOSX/plugin/
  inflating: __MACOSX/plugin/._.DS_Store
  inflating: plugin/debugger.py
  inflating: plugin/debugger.vim

//ホームディレクトリ配下に.vimディレクトリの作成
[root@centos src]# mkdir ~/.vim/

//ホームディレクトリ配下に/.vim/pluginディレクトリの作成
[root@centos src]# mkdir ~/.vim/plugin/

//解凍したコードを移動
[root@centos src]# mv plugin/debugger* ~/.vim/plugin/

これでphpのコードをvimで開いて下さい。
任意の行に:Bpでブレークポイントが付けられます。

vimを開いた状態でF5キーを押すと
waiting for a new connection on port 9000 for 5 seconds…
と表示されるので、5秒以内にブラウザなどからアクセスします。
アクセスする際は「?XDEBUG_SESSION_START=1」をつけましょう。
http://192.168.xx.xx/…/xxx.php?XDEBUG_SESSION_START=1
といった感じです。

これでデバッグが開始します。

デバッグの方法

デバッグ方法は表示されています。

|     resize                   | [ Normal Mode ]
|     step into                |   ,e  eval
|     step over                |
|     step out                 |
|     run                      | [ Command Mode ]
|     quit debugging           | :Bp toggle breakpoint
|                                  | :Up stack up
|    get all context          | :Dn stack down
|    get property at cursor   |

step into (ステップイン)
step over (ステップオーバー)
step out (ステップアウト)
run (実行)
がよく使用するでしょう。
「,e」と入力するとフォーカスがevaluateに移動するので、「$xx」と変数名入力すると内容が表示されます。

vimの画面分割ですが
contrlを押しながらwwでカーソルを次のウィンドウへ移動
ZZ(シフトを押しながらzz)で分割ウィンドウを閉じる
一発で全ての画面から抜けるときは:qa!
となります。

おまけですが、vim の画面を分割するのは
:sp 上下分割
:vs 左右分割
となります。

ステップ実行ができるので遷移が分かりやすいですし、変数も見れます。
linuxだけで完結しているデバッグなので便利ですね! :x002:

タイトルとURLをコピーしました