Eclipse3.5(Galileo) PDT でデバッグ
スクリプト言語は簡易に出力が取れるし、込み入ったことは書きたくないので、あまりデバッガーの必要性を感じなかった。
EzoGPの方でPHPのCommand Line Interface(CLI)を使う必要が出て、コードもUTF-8で書いているので、Galileo PDTからscriptの実行(プログラムを右クリック=>Run As => PHP Script)をしようと思った。コマンドプロンプトから実行すると化けてしまうし。さて、やろうかと思ったら、Debugger(Zend DebuggerかXDebug)を設定しろ、と言われてしまった。機械はWindows XP(SP3)、PHPは5.2.6、Apacheは2.2.9。覚書を残しておくことにする。
Zend Debuggerのダウンロード
ここから「ZendDebugger-5.2.14-cygwin_nt-i386.zip」ダウンロードして、解凍。とりあえず、「D:\ZendDebugger5.2.14」においた。
php.iniの変更
php.iniの最後尾に以下のセクションを追加。Windowsのバイナリーはスレッドセーフなので、1行目には「zend_extension_ts」、「D:\ZendDebugger5.2.14」下の「5_2_x_comp」フォルダーにあるdllを設定するようにする。参考サイトによると、RedHat系LinuxにRPMでPHPをいれると、非スレッドセーフになるようだ。スレッドセーフでないときには、「zend_extension」に「5_2_x_nts_comp」フォルダを選択して設定する。
[Zend] zend_extension_ts=D:/ZendDebugger5.2.14/5_2_x_comp/ZendDebugger.dll zend_debugger.allow_hosts=127.0.0.1 zend_debugger.expose_remotely=always
PDTの設定
PreferenceのPHPを開いて(下)、「PHP Executable」を設定する。
「PHP Executables」の設定は以下。
設定はこれで終わり。テストに以下のコードを書いてみる。
<?php print "こんにちは"; return; ?>
これを選んで、「Run AS」=> 「PHP Script」とすれば、以下のように「Browser Output」に結果が出力される。
ブレークポイントを設定してデバッグがしたければ、プログラムを選んで右クリック、「Debug As」=>「PHP Script」とすれば、デフォルトで「PHP Debugパースペクティブ」が立ち上がる。