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参数而不是file:///Users/tomasgirardi/NetBeansProjects/datamed/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,网站托管在 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] 中的项目路径和网络服务器上的项目路径。/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 回答
0

为了让它再次工作,我更改xdebug.remote_host=127.0.0.1xdebug.remote_host=localhostphp.ini

下面是我对 xdebuga 的配置

xdebug.remote_enable=1
        xdebug.remote_port=9001
        xdebug.remote_handler=dbgp
        xdebug.remote_host=localhost
        xdebug.remote_autostart = 1
         xdebug.show_local_vars = 1
        xdebug.profiler_enable = 1
        output_buffering=off 
        xdebug.idekey=netbeans-xdebug
于 2020-01-27T03:43:48.627 回答