1

Eclipse に xdebug と通信させようとしています。xdebug ログから、xdebug は正しく動作しているように見えます (つまり、それとメッセージを送信してい<init>ます<response>) が、Eclipse は xdebug に何も送信していません (つまり、Netbeans のような no feature_setfeature_getなどのコマンド)。


これが私のセットアップです:

  • MacOS/X 10.7.5
  • Eclipse 4.2.1「ジュノ」
    • PHP 開発ツール (PDT) SDK 機能 3.1.1.201209101312
  • (ネットビーンズ 7.1.2)
  • MAMP 2.1.1 実行中:
    • アパッチ 2.2.22
    • PHP 5.4.4
      • 実行されているPHP実行可能ファイルは/Applications/MAMP/bin/php/php5.4.4/bin/php
      • 使用されているPHP構成ファイルは/Applications/MAMP/bin/php/php5.4.4/conf/php.ini
      • xdebug 2.2.0

私の関連する行は次のphp.iniとおりです。

[xdebug]
zend_extension = "/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.default_enable = on
xdebug.remote_enable = on
xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_autostart = on
xdebug.remote_handler = "dbgp"
xdebug.remote_autostart = on
xdebug.remote_mode = "req"
xdebug.remote_connect_back = on
xdebug.remote_log = /tmp/xdebuglog.log

Netbeans をポート 9000 の xdebug にセッション IDnetbeans-xdebugで問題なく接続させることができます。デバッグを開始すると、Web ブラウザーで新しいウィンドウが開き、?XDEBUG_SESSION_START=netbeans-xdebug実行中の PHP ファイルの URL が追加されていることに注意してください。

以下は、Netbeans が接続を試みたときの xdebug ログの抜粋です。

Log opened at 2013-01-18 18:42:52
I: Checking remote connect back address.
I: Remote address found, connecting to ::1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Applications/MAMP/htdocs/projectname/index.php" language="PHP" protocol_version="1.0" appid="647" idekey="netbeans-xdebug"><engine version="2.2.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init>

<- feature_set -i 0 -n show_hidden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="0" feature="show_hidden" success="1"></response>

<- feature_set -i 1 -n max_depth -v 3
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="max_depth" success="1"></response>

<- feature_set -i 2 -n max_children -v 30
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_children" success="1"></response>

<- feature_get -i 3 -n max_data
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="3" feature_name="max_data" supported="1"><![CDATA[1024]]></response>

<- stdout -i 4 -c 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stdout" transaction_id="4" success="1"></response>

<- step_into -i 5
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="5" status="break" reason="ok"><xdebug:message filename="file:///Applications/MAMP/htdocs/projectname/index.php" lineno="17"></xdebug:message></response>

<- stack_get -i 6
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="6"><stack where="{main}" level="0" type="file" filename="file:///Applications/MAMP/htdocs/projectname/index.php" lineno="17"></stack></response>

…

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="14" status="stopping" reason="ok"></response>

Log closed at 2013-01-18 18:47:21

エクリプスでは…</p>

デフォルトの PHP 設定を使用してワークスペースに新しい PHP プロジェクトを作成し、ソース ファイルとパブリック リソース用に個別のフォルダーを作成しました。PHP インクルード パスのステップでは何も変更しませんでしたが、PHP ビルド パスでは、プロジェクト内のフォルダーをクリックLink Sourceしてリンク/Applications/MAMP/htdocs/projectnameしました。projectname

次に、Eclipse の設定を次のように設定します。

  • General->ではWeb Browser、外部 Web ブラウザー (Firefox) を使用するように設定しました。
  • PHP-> Debug->で、Installed DebuggersXDebug がリストにあること、ポート 9000 を使用していること、JIT リモート セッションがオフであることを確認しましたmparker17
  • PHP-> Debug、私:
    • PHP デバッガーを「XDebug」に設定します。
    • PHP サーバーを正しいベース URL ( http://projectname.local) ローカル Web ルート ( /Applications/MAMP/htdocs/projectname) に設定し、サーバーとワークスペース間のパス マッピングを設定します。
    • PHP 実行可能ファイルを正しい実行可能パス ( /Applications/MAMP/bin/php/php5.4.4/bin/php)、PHP ini ファイル ( /Applications/MAMP/bin/php/php5.4.4/conf/php.ini)、SAPI タイプを「CLI」、PHP デバッガーを「XDebug」に設定します。
    • チェックボックスをオンにしましたEnable CLI Debug
    • チェックボックスをオンにしましたBreak at first line

私のデバッグ構成では、PHP Web アプリケーションを追加し、その設定を次のように設定しました。

  • タブで、Server上記で作成した PHP サーバーを設定し、ファイルを正しく設定し、URL を正しく設定します。

以下は、Eclipse が接続を試みたときの xdebug ログの抜粋です。

Log opened at 2013-01-18 17:33:48
I: Checking remote connect back address.
I: Remote address found, connecting to ::1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Applications/MAMP/htdocs/projectname/index.php" language="PHP" protocol_version="1.0" appid="703" idekey="mparker17"><engine version="2.2.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2013-01-18 17:33:49

これは、Eclipse が xdebug と通信していないことを示しているように思えますが、なぜそれが起こっているのか、私は困惑しています。

4

1 に答える 1

0

JITリモートセッションがオフになっています

それをオン。

于 2013-01-21T00:17:25.290 に答える