Xdebug 再び!
前回とは違って、Pleiades に Xdebug が標準装備されたそうなので、リトライしてみる。
ただし、前回同様 Pleiades 同梱の XAMPP ではなくて、別途導入した XAMPP を利用。
前回記事
デバッグ XDebug 編
XDebug の導入
XDebug の導入の試行錯誤
[Eclipse] 4.4
[OS] Windows7 SP1 64bit
[XAMPP for Windows] 1.8.1
[ php] 5.4.7
の必要箇所をコメントアウトから復帰。
2085行目の値を 1 に。
- [XDebug]
- zend_extension = "(xampp)\php\ext\php_xdebug.dll"
- ;xdebug.profiler_append = 0
- xdebug.profiler_enable = 1
- ;xdebug.profiler_enable_trigger = 0
- ;xdebug.profiler_output_dir = "(xampp)\tmp"
- ;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
- xdebug.remote_enable = 1
- ;xdebug.remote_handler = "dbgp"
- ;xdebug.remote_host = "127.0.0.1"
- ;xdebug.trace_output_dir = "(xampp)\tmp"
※あちこちいじっているため、行番号は不確か。
私の場合は、単体 XAMPP を利用するのでちょいと設定が必要。
上記 [デバッグ] ダイアログで [PHP 実行可能ファイル…] というリンクからでもいける。
- [ウィンドウ]-[設定]
- [PHP]-[PHP 実行可能ファイル]
- [追加]
- New PHP Executable
- 名前:任意
- 実行可能ファイル・パス:[参照] から、利用したい php.exe ファイルを選択する
- PHP ini ファイル(オプション):実行可能ファイルを選択したら、同階層の php.ini ファイルが自動入力された
他のものを利用したいときは、別途指定できるみたい - SAPI タイプ:利用したい php に合わせる *1
- [次へ]
- Debugger Settings
- デバッガー:XDebug
- その他の設定は不明につきデフォルト
- [完了]
- [OK]
*1:SAPI タイプは、CLI 版か、CGI 版か、ということらしい。
下記コマンドにて確認できる。
- >(xampp)\php\php.exe --version
- PHP 5.4.7 (cli) (built: Sep 12 2012 23:48:31)
- Copyright (c) 1997-2012 The PHP Group
- Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
- with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
必要に応じて
[ウィンドウ]-[設定]
[PHP]-[サーバー] からサーバーの追加。
Default PHP Web Server についても、Debugger の設定が必要。
[Default PHP Web Server] を選択
[編集]
[デバッガー] タブ
上記「PHP 実行可能ファイルの追加」の「Debugger Settings」参照
[完了]
追加後、改めて
[ウィンドウ]-[設定]
[PHP]-[デバッグ] から
先ほど追加したものを選択。
「最初の行でブレーク」のチェックを外す。
Eclipse では、上記 [PHP 実行可能ファイル] で php.ini の場所を設定したにも拘らず
include_path を上書きするらしく、設定しないと include_path が無視される。
そこで改めてプロジェクト毎にインクルードパスを設定してやる必要がある。
[プロジェクトを右クリック]-[インクルード・パス]-[インクルード・パスの構成]
[外部ソース・フォルダの追加] からインクルードしたいディレクトリを指定する。
XDebug の導入 には、起動構成について書いたけど
こちらで書くのを忘れてる。。。
基本的な進め方は、上記の前回記事を参照。
ただ、今回 Eclipse をアップデートしたせいか、前のやり方ではできなかった。
というか、バグってるかも?
Eclipse: Mars.1 (4.5.1)
[PHP Web アプリケーション]-[新規の起動構成] ここで、ファイルの [参照] に行くと、
「ファイルの選択」というダイアログが出るものの
ファイルリストが出てこない。。。
なので、ファイル欄は、手動で設定。
/(スラッシュ)で始めて、プロジェクトルートから index.php までのフルパスを入力。
例)/projectA/web/index.php
実行時に読みにいくファイル、大概は index.php でしょう。
このコンテキストメニューから
[デバッグ]-[PHP Web アプリケーション]
これで、新規起動構成を自動生成して
ダイアログを開いてくれる。
便利!
stack overflow:Debug PHP on Eclipse MARS with XDebug: error: file does not exist
止めたい行番号をダブルクリックすることで、ブレークポイントの OnOff をできる。
ツールバーの虫(Bug)ボタンをクリックすればデバッグ開始。
[PHP CLI アプリケーション] を選択してやると、
[説明] 欄に「Debug PHP Executable」と表示されるので
[OK] 。
そういえば、昔、こんな記事を書いた記憶が。。。
今になってみれば
PHP CLI アプリケーション:コマンドラインで動かす
PHP Web アプリケーション:Web サイト
なので、[PHP Web アプリケーション] を選択するべきだった、とは思えるけど
それでも、よくわかっていない。
コマンドラインで動かす PHP って、どんなのだろう。。。
上記設定を全部済ませたのに、デバッグを開始しても
デバッグパースペクティブのデバッグタブに何も現れない。
ブレークポイントも効かない。
サイトの表示はされる。
ただし、URL に XDEBUG_SESSION_START というパラメータが付いていない。
悩んでみたけど、設定を確認して戻ってくると
ちゃんとデバッグできた。
こんなこともあるのね~。
初回ブレークポイント使用時にパースペクティブの切り替え確認ダイアログが出るので
[常にこの設定を使用する] にチェックを入れて [はい] 。
Web 制作・運用 Tips アーカイブ:Eclipse+XdebugによるPHPのデバッグ方法