【问题标题】:xdebug skips breakpoints in IntelliJ Ideaxdebug 在 IntelliJ Idea 中跳过断点
【发布时间】:2017-12-26 18:33:53
【问题描述】:

问题

在执行 PHP 网页调试配置时,PHP 会跳过我的 Web 应用程序中的所有断点。 xdebug 日志中没有记录任何内容。调试器输出“Waiting for incoming connection with ide key 'XYZ'”,其中 XYZ 是为该会话生成的 IDE 密钥。

异常

如果我手动放置一个“xdebug_break();” PHP中的语句,PHP在断点处停止;但是,我看不到作用域变量,并且 xdebug 日志被记录下来。

我在跑步

  • IntelliJ IDEA Ultimate 2017.3.1 Build #IU-173.3942.27
  • XAMPP Windows 5.6.32
  • PHP 5.6
  • Xdebug 2.5.3-5.6

XAMPP 虚拟主机设置

<VirtualHost 127.0.0.2:80>
DocumentRoot "C:/dev/testphp"
ServerName 127.0.0.2
ErrorLog "C:\dev\testphp\logs\apache.error.log"
CustomLog "C:\dev\testphp\logs\apache.custom.log" common
</VirtualHost>

Xdebug PHP.ini 设置

[Xdebug]
zend_extension=C:/xampp/php/php_xdebug-2.5.3-5.6-vc11.dll
xdebug.default_enable=1

xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_host=127.0.0.2
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_mode=jit
xdebug.remote_log=C:/xampp/apache/logs/xdebug.log

; xdebug.profiler_enable=1
; xdebug.profiler_enable_trigger=1
; xdebug.profiler_output_dir=C:/xampp/apache/logs/logs/profiler

我尝试了以下方法:

  1. 检查断点已启用(已启用)。
  2. 使用 Zero-configuration Web Application Debugging with Xdebug and PhpStorm 从头开始​​设置 xDebug。出现同样的问题。
  3. 检查我的防火墙。 PHPStorm、IDEA 和 Apache 都设置为允许。
  4. Web 服务器上经过验证的调试器配置(一切都签出)
  5. 使用基本 PHP 文件创建了一个新项目,以测试是否特定于项目(出现相同问题)
  6. 从头开始重新安装 XAMPP(万岁 Mary。出现同样的问题)。
  7. 我也尝试研究过这个问题,但以上似乎是标准解决方案。

编辑 1:

很奇怪。重新启动后它现在可以工作了。我使用了这些选项并确定可能的罪魁祸首是 xdebug.remote_mode=jit

我不是 100% 有信心(我记得上周五玩过那个选项);但是,当我打开它时,它确实触发了我报告的上述错误。

注意:这可能不是错误,而是预期的行为,而且我自己还没有完全理解即时模式的工作原理。

编辑 2:

更新:奇怪的事情正在发生。 它适用于我的测试项目,但不适用于我的主项目。

测试项目 当我尝试“#4 Created a new project with a basic PHP file to test if project specific (same issue)”时,我创建了一个 index.php 文件来打印斐波那契数列。 Xdebug 捕获了我在那个文件中设置的断点

主要项目: 当我在 PHP 中为页面加载后触发的 ajax 调用放置断点时,断点将被忽略。 当我在 PHP 中为一个页面放置一个断点时,因为它在我的控制器中构造了它,断点被忽略 --怪事-- 如果我将两个项目作为单独的窗口打开,则测试项目运行良好;但是,如果我对主项目执行调试配置,则弹出的页面位于“等待 127.0.0.1”,这对应于 apache 虚拟主机中主项目的 IP 地址。相比之下,127.0.0.2对应的是测试项目。同时测试项目窗口打开调试器并在主项目的 index.php 文件的第一行暂停并警告该文件在项目之外。

编辑 2.1:

已修复。

Xdebug 端口不匹配。

PHP INI 为 xdebug 指定了端口 9000。项目的 xdebug 设置为测试项目指定端口 9000,为主项目指定端口 9001。关闭测试项目并将主项目更新为 9000 修复了此问题。

【问题讨论】:

    标签: php apache debugging intellij-idea


    【解决方案1】:

    很奇怪。重新启动后它现在可以工作了。 我玩了这些选项,并确定可能的罪魁祸首是 xdebug.remote_mode=jit

    我不是 100% 有信心(我记得上周五玩过那个选项);但是,当我打开它时,它确实触发了我报告的上述错误。

    注意:这可能不是错误,而是预期的行为,而且我自己还没有完全理解即时模式的工作原理。

    编辑:确保您也更新了 xdebug 的 IDEA 设置。如果端口不匹配,IDEA 将永远无法连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多