2019/05/07
vimでdebug
はじめに
前々回の投稿で扱ったデバッガをvim(CLI)にて再現しました。
普段はIDEでなくvimで作業するため
実運用的にこちらを採用していきます。
普段はIDEでなくvimで作業するため
実運用的にこちらを採用していきます。
他のブログで紹介されているものと特に異なるのが
【vimを起動する環境とPHPを起動する環境が同じ】
という点にご留意ください。(一応同条件のものは少数だが確認しました)
良かった点
- ツールの行き来が無いので無駄な作業が減る
- 慣れてるvimの操作の分めちゃくちゃ速い
微妙, 悪かった点
- vim内部でダイナミックにpythonを実行できるようコンパイルし直し
- 独自のdbgpというプロトコルを認識する必要がある
- IDEと違ってnginxのポートと重複しちゃだめ(?)
最後の点で恥ずかしながら苦戦を強いられました。
Chromeにアドオンの導入
今回使用するブラウザとしてChromeを挙げます。
こちらからダウンロードしてインストール。
拡張機能の設定から”Xdebug helper”のオプションに進み
“IDE key”のところを”others”と任意の文字列を設定します。
ここでは”VIM_DEBUG”としました。
以上でブラウザの設定は終わり。
XDebugの導入
いつもの環境はremi-php56のPHP 5.6をインストールしているので
1 | yum install -y --enablerepo=remi-php56 php-xdebug |
にてインストール完了。
自動的に /etc/php.d/15-xdebug.ini が生成されるので
以下の部分をコメントインし指定の値として設定後、再起動する。
1 2 3 4 5 | xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9005 xdebug.remote_autostart=1 |
最初ポートを9000にて検証していたが
nginxにて既に使っていてLISTEN出来なかった?ため9005に変更。
あとはphp-fpmを再起動すれば終わり。
vimの設定
まずはvimの再コンパイルから。
コンパイル時のオプションに以下を追加してmake。
オプションはpython2.6と3.6がインストールされている一ケース。
で +python/dyn +python3/dyn が表示されていればOK.
コンパイル時のオプションに以下を追加してmake。
1 | --with-python-config-dir=/usr/lib/python2.6/config --with-python3-config-dir=/usr/lib64/python3.6/config-3.6m-x86_64-linux-gnu --enable-python3interp=dynamic --enable-pythoninterp=dynamic |
オプションはpython2.6と3.6がインストールされている一ケース。
1 | vim --version |
で +python/dyn +python3/dyn が表示されていればOK.
次にプラグインのインストール
1 | NeoBundle 'joonty/vdebug' |
ポート等は以下の設定で上書き更新出来る。
表示周りやキーマップの設定もカスタマイズ可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | let g:vdebug_options= { \ "port" : 9005, \ "server" : '127.0.0.1', \ "timeout" : 20, \ "on_close" : 'detach', \ "break_on_open" : 1, \ "ide_key" : '', \ "debug_window_level" : 0, \ "debug_file_level" : 0, \ "debug_file" : "", \ "watch_window_style" : 'expanded', \ "marker_default" : '⬦', \ "marker_closed_tree" : '▸', \ "marker_open_tree" : '▾', \ "remote_path" : "", \ "local_path" : "", \} let g:vdebug_options["break_on_open"] = 0 |
編集するvimに対して実行されるPHP(もといxdebug)が同じ環境なので
serverオプションは127.0.0.1となる。
vimの設定はこれにて終わり
Author Profile
スターフィールド編集部
SHARE