2

次のようなディレクトリ ツリーを持つ netbeans プロジェクトがあります。

<source folder>
|
|---> gui <web root folder>
|      |
|      L---> datos.php
|
L---> index.php

datos.php は、作業ディレクトリを .. (ソース フォルダー) に変更し、次のように index.php を含めます。

chdir('..');
require 'index.php';

datos.php 内にブレークポイントを配置すると、デバッガーは正しくブレークしますが、index.php にブレークポイントを配置すると無視されます。

奇妙なことに、6か月前に同じ問題が発生し、修正できました。なぜ機能しなくなったのか、それを修正するために当時何をしたのかはわかりません。

より詳しい情報:

xdebug ログには、ブレークポイント設定の次のコマンドが表示されます。

breakpoint_set -i 315 -t line -s enabled -f file:///Users/tomasgirardi/NetBeansProjects/datamed/index.php -n 51
breakpoint_set -i 316 -t line -s enabled -f file:///Users/tomasgirardi/NetBeansProjects/datamed/gui/datos.php -n 39 

どちらの場合も、xdebug は state="enabled" で応答します

また、手動でデバッグする場合は、次のコマンドを使用してブレークポイントを設定できます。これは機能します。

breakpoint_set -i 315 -t line -s enabled -f file:///../index.php -n 51

しかし、netbeans に同じfile:///../index.php引数を指定して breakpoint_set コマンドを発行させる方法がわかりません。他の方法でこれを機能させることができます。

助けてくれてありがとう!

4

5 に答える 5

9

xdebug_break(); をいつでも試すことができます。

例えば ​​:

<?php
    for ( $i=1, $j=0; $i<10; $i++) { 
        xdebug_break();
        echo "<br>Line $i";   // will stop here
    }
?> 

次の行にブレークポイントを追加します。

それが少し役立つことを願っています...

于 2013-04-18T20:29:09.510 に答える
2

ブレークポイントが再び機能しています。以前は機能しなかった理由はわかりませんが、現在は機能しています。xdebugまたはNetbeansで変更を行ったことも覚えていません。

xdebug.logは以前と同じように表示しますが、設定されたブレークポイントで停止します。

<- breakpoint_set -i 4 -t line -s enabled -f file:///Users/tomasgirardi/NetBeansProjects/datamed/index.php -n 51
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="4" state="enabled" id="14290001"></response>

<- run -i 5
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="5" status="break" reason="ok"><xdebug:message filename="file:///Users/tomasgirardi/NetBeansProjects/datamed/index.php" lineno="51"></xdebug:message></response>

ただし、これが発生した理由を誰かが知っている場合は、それを共有することはどちらの方法でも役立つ可能性があります。おそらく、私または他の誰かが将来同様の問題を回避できるようになるでしょう。

于 2013-02-07T20:28:12.960 に答える
2

この問題は、Web アプリにリモート サーバーを使用しているユーザーに特有のものです。

私も同じ問題を抱えていました。Xdebugはブレークポイントを無視しますが、私はnetbeansに固有のソリューションを提供しましたが、どのIDEを使用していても本質は同じです。ローカル プロジェクト パスをリモート サーバー パスにマップするだけです。

私の環境はWINDOWS 7で、WebサイトはUBUNTU VMでホストされています。Windows 7 から NETBEANS を使用しており、リモート プロジェクトをセットアップしています。

私のxdebugログ

<- breakpoint_set -i 4 -t line -s enabled -f file:///C:/Users/ali/Documents/NetBeansProjects/test.com.au/cgen/src/Acme/TestBundle/Controller/CreateController.php -n 39

->

実際の問題は、netbeans のプロジェクト パス[C:/Users/ali/Documents/NetBeansProjects/test.com.au] と Web サーバー上のプロジェクト パスでした。/home/ali/sites/test.com.au

修正: Netbeans でプロジェクトをクリックし、[プロパティ] > [実行構成] > [詳細] > 適切なサーバー パスと同等のプロジェクト パスを入力します。それはうまくいきます。

于 2015-03-17T00:40:13.147 に答える
0

同じ問題は、xdebug.extended_info = 0 をコメントすることで解決されました。また、1 に切り替えることもできます。

于 2014-12-11T14:06:47.193 に答える