XdebugはPHP用デバッガー&プロファイラーツール。
Xdebug – Debugger and Profiler Tool for PHP
http://xdebug.org/
最新のXAMPPには同梱されているけど、XAMPPをインストールしただけでは有効にはならない。
Xdebugを有効にするには
php.iniを書き換えることでXdebugを有効にできる。
php.iniには既にデフォルトの設定が書き込まれてコメントアウトされている。
1 2 3 4 5 6 7 8 9 10 11 |
[XDebug] ;zend_extension = "C:xamppphpextphp_xdebug.dll" ;xdebug.profiler_append = 0 ;xdebug.profiler_enable = 1 ;xdebug.profiler_enable_trigger = 0 ;xdebug.profiler_output_dir = "C:xampptmp" ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" ;xdebug.remote_enable = 0 ;xdebug.remote_handler = "dbgp" ;xdebug.remote_host = "127.0.0.1" ;xdebug.trace_output_dir = "C:xampptmp" |
行頭のセミコロンを削除して xdebug.remote_enable = 0 を 1 に変更する (プロファイラを使わないのならば xdebug.profile_xxxxx はコメントアウトしなくてもよい)。その後、Apacheを再起動する。
Xdebugが有効になったか確認する
phpinfo() の出力に xdebug が含まれていれば有効になっている。
phpinfo() ではオプション設定も表示される。結構沢山のオプションがある。
NetBeansでのXdebugの使用
[ツール]-[オプション]メニューを選択し、[PHP]オプションの[デバッグ]タグで、[デバッガ・ポート]が9000になっていることを確認する。
9000番がデフォルトのポート番号だけど、php.iniのxdebug.remote_portオプションで異なるポートを指定することもできる。オプションの現在値はphpinfo()を見れば知ることができる。
簡単なプロジェクトを作成してブレークポイントを設定してデバッグセッションを開始し、処理がブレークポイントで止まればデバッガがちゃんと機能している。
デバッグセッションを開始した後、ステータスバーに以下のメッセージがずっと表示されている場合には、[デバッガ・ポート]の指定が実際のデバッガの設定と異なっていることが考えられる。
1 |
接続を待っています(netbeans-xdebug) |