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を設定するようにする。参考サイトによると、RedHatLinuxRPMPHPをいれると、非スレッドセーフになるようだ。スレッドセーフでないときには、「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

Apacheで確認

Apacheを再起動して、phpinfo()で確認する。以下のように、Zend Engineの表記のところに「with zend debugger」と出ればOK。

PDTの設定

PreferenceのPHPを開いて(下)、「PHP Executable」を設定する。

PHP Executables」の設定は以下。

設定はこれで終わり。テストに以下のコードを書いてみる。

<?php
    print "こんにちは";
    return;
?>

これを選んで、「Run AS」=> 「PHP Script」とすれば、以下のように「Browser Output」に結果が出力される。

ブレークポイントを設定してデバッグがしたければ、プログラムを選んで右クリック、「Debug As」=>「PHP Script」とすれば、デフォルトで「PHP Debugパースペクティブ」が立ち上がる。