どうも~。虚弱体質エンジニアの吉田です。
昨日はウイルス性胃腸炎的な激しい腹痛で一日を無駄に過ごしてしまいました。
体調管理はしっかりしないといけませんね。

さて、前回のXdebugをつかったプリファイリングに続いてXdebug第2弾!
EclipseとXdebugを利用したPHPのリモートデバッグの方法を紹介します。

普段、みなさんがデバッグをするときはどういう方法を使っているでしょうか?
おそらく最も簡単な方法は、変数をprint()やvar_dump()する方法でしょう。

でも、プログラム自体に変更を入れてしまう必要があったり、
デバッグ行の消し忘れがあってお客様に無様なシステムを露呈して
しまう可能性もなきにしもあらずです。

var_export()を使ってLoggerに吐き出せば良いじゃないかという
話もありますが、もっともっと便利な機能もあるので是非Xdebugを
使ってみてください。


では、さっそく簡単な使い方を紹介します。




Step 1. Eclipse PDTをダウンロード

MergeDocプロジェクトのサイトより、Eclipse PDTをダウンロードします。
http://mergedoc.sourceforge.jp/

今回は、Eclipse 3.6 Helios(JREあり)のPHP版をダウンロードしました。
(pleiades-e3.6-php-jre_20101025.zip)

今回は「C:\pleiades-e3.6-php-jre_20101025」にこれを解凍します。

このパッケージには、Xdebug付のXAMPPが同梱されているので、
デバッグ機能が直ぐに使用できます。


Step 2. Eclipseを起動する

"C:\pleiades-e3.6-php-jre_20101025\eclipse\eclipse.exe"から
Eclipseを起動します。

起動すると、ワークスペースの選択を求められますが、
今回は「../workspace」を指定しました。

01workspace.png



Step 3. デバッグ対象のプロジェクトを作成する

今回は、XAMPPに付属しているphpMyAdminをデバッグしてみます。
* 「ファイル」⇒「新規」⇒「PHPプロジェクト」選択します。

02phpproject.png


* プロジェクト名に「phpmyadmin」
* 内容は「既存ロケーションにプロジェクトを作成」を選択し、
  「C:\pleiades-e3.6-php-jre_20101025\xampp\phpMyAdmin」を指定します。

03phpproject.png


完了ボタンで、phpMyAdminのプロジェクトが作成されます。


Step 4. Eclipseでデバッグの設定を行う

Eclipseのメニューから「実行」⇒「デバッグの構成」を選択します。

04debugconfig.png


左部分のリストに「PHP Webページ」を選択し、「新規」ボタンをクリックします。

05debugconfig.png


* 名前には「phpmyadmin」を指定します
* ファイルには「/phpmyadmin/index.php」を指定します。

06debugconfig.png


「適用」をクリックして設定を保存します。
※「最初の行でブレーク」をONにしているので、PHPプログラムが
  実行されるたびに処理がブレークされます。


Step 5. XAMPPを起動する

"C:\pleiades-e3.6-php-jre_20101025\xampp\setup_xampp.bat"
を実行してXAMPPのセットアップを行います。

セットアップ完了後は、XAMPPコントロールパネルからApacheを起動します。
"C:\pleiades-e3.6-php-jre_20101025\xampp\xampp-control.exe"

07xampp.png



Step 6. Eclipseからデバッガを起動する

Eclipseのメニューにある「デバッガ」ボタンから「phpmyadmin」を選ぶと
デバッグが開始されます。

08debugrun.png


「パースペクティブ切り替えの確認」というダイアログが表示されるので
「はい」を選択するとデバッグのパースペクティブに切り替わります。

09debugperspective.png


スタックトレースの表示、変数の表示、ソースコード表示、
内部Webブラウザ、などが表示されています。

10debugsnapshot.png


「最初の行でブレーク」の設定がされているので、処理が中断されている
状態です。

F6を押すことでステップ実行、F8を押すことで継続実行されます。
※F8で継続実行するとブレークを抜け、内部Webブラウザに画面が表示されます。

11debugsnapshot.png




というわけで、今回はEclipse PDTとXdebugを使ったリモートデバッグの
設定方法と簡単な使い方を紹介しました。

次回は、リモートデバッグの詳細機能を紹介したいと思います