Log in
  • Blogs
  • 青柳 臣一 ブログ
  • SNS サイトを作ってみた - 他のプラウザーからのリクエストを eclipse PDT でデバッグする方法

SNS サイトを作ってみた - 他のプラウザーからのリクエストを eclipse PDT でデバッグする方法

目次へ戻る

eclipse PDT でデバッグ実行するとき、外部ブラウザーを使うように設定しているとブラウザーが起動します。しかし、複数のブラウザー、たとえば IE と Chrome の両方からのアクセスを同時にデバッグしたいとかいったことができません。デバッグできるのはあくまで最初に起動したブラウザーからのリクエストのみです。
もちろん、Android や iOS デバイスからのリクエストをデバッグすることもできません。Android や iOS でもプライベート IP アドレスにアクセスできますから、WiFi 経由で同じサブネットに繋いで http://192.168.1.1/elgg/ のようにアクセスしてやればローカルで動いている Web サーバーに普通にアクセスできます。しかし、eclipse PDT が最初に起動する外部ブラウザーを Android や iOS にするなんてことはできませんからデバッグのしようがありません。

が、ちょっと工夫してやりとできるようになります。デバッグ実行を開始したときに開くブラウザーの URL を見ていると、通常の URL の後ろに XDEBUG_SESSION_START=.... となにやらいろいろ情報が付いていることがわかります。これがデバッグセッションを表す情報になっているようで、実はこの URL をコピーして別のブラウザ(スマホでも OK)からアクセスしてやれば eclipse PDT でちゃんとデバッグできます。

というわけで、

  1. eclipse PDT で外部ブラウザーを使うようにしておいてデバッグ実行を開始する。
    ちなみに、外部ブラウザーを使うようにするにはメニューの「Window」-「Preferences」-「General」-「Web Browser」で Use external web browser を選択します。
  2. 外部ブラウザーが表示されたらブラウザーに渡されたアドレス(URL)をコピーする。
  3. あとは、デバッグしたいブラウザーでこのアドレスを開けば OK。Android や iOS に渡したいときは、私はこのアドレスを書き込んだテキストファイルを Dropbox で渡して、URL 部分をダブルタップしてデバッグセッションを開始しています。

まぁ、IE でも Chrome でも User-Agent を変更して Android や iOS になりすますことができるのでこういうことをする必要はあまりないんですが、どうしても実機からどういうリクエストが来ているのか調べたいときとかには使えます。

ちなみに、eclipse PDT(というか XDebug と Apache)は相手が誰かはまったく気にしていないようですし、管理しようともしていません(そもそも仕組み的に考えてできないんですが)。なので、最初に立ち上がったブラウザーは URL だけコピーしたら終了してしまって構いません。

目次へ戻る