猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Linux

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

投稿日:2013年7月21日 更新日:

以前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:

Gooleアドセンス用336

Gooleアドセンス用336

-Linux
-

執筆者:

関連記事

linux

linxuのパーミッションの設定(chmod)

ディテクトリやファイルには、グループ毎に読み込み、書き込み、実行の権限が付与できます。 確認方法 lsコマンドにlオプションを付けると確認できます。 # ls -l 合計 72 drwxr-xr-x …

PHPでは文字列の比較に==を使用してはいけない

==を使用しても、文字列の比較にはなりません。 必ず「===」もしくは「strcmp」を使いましょう! 否定する場合は「!==」です。 もし「==」とすれば”00″は&#822 …

linux

wgetの利用方法

linuxにある強力なget、post等ができる便利なコマンドがwgetです。 私はvmware上で起動させているlinux(CentOS)から、このコマンドでサーバーへgetやpostを行ってよくテ …

linux

WinSCPの文字化け対応方法

WindowsからLinuxへファイルを転送するのに使用するアプリはWinSCPが最も有名なのではないでしょうか。 ただLinuxのOSを日本語でインストールすると、文字化けする場合があります。 少し …

linux

ランレベルの設定と確認(chkconfig)

ランレベルは、linuxのサービスの起動設定です。 #chkconfig –list で確認できます。 0 システムの停止 1 シングルユーザーモード 2 マルチユーザーモード(NFSなし) 3 マ …