xdebug在IntelliJ Idea中跳过断点

问题描述 投票:0回答:1

Issue

在执行PHP Web页面调试配置时,PHP会跳过Web应用程序中的-all-断点。没有任何内容记录到xdebug日志中。调试器输出“正在等待与ide键'XYZ'的传入连接”,其中XYZ是为该会话生成的IDE密钥。

例外

如果我手动放置“xdebug_break();” PHP中的语句,PHP在断点处停止;但是,我看不到范围变量,并且记录了xdebug日志。

I'm running

  • 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 Virtual Host Settings

<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 Settings

[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

I've tried the following:

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

EDIT 1:

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

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

注意:这可能不是一个错误,而是预期的行为,而我自己还没有完全理解Just-In-Time模式的工作原理。

EDIT 2:

更新:奇怪的事情正在发生。它在我的测试项目上工作正常,但不在我的主项目上。

测试项目当我尝试“#4使用基本PHP文件创建一个新项目来测试项目是否特定(出现相同问题)”时,我创建了一个index.php文件,用于打印Fibonacci序列。 Xdebug捕获我在该文件中设置的断点

主项目:当我在PHP中为在页面加载后触发的ajax调用中断点断点时,将忽略断点。当我在PHP中为一个页面删除一个断点,因为它在我的控制器中构建了beign,断点被忽略了 - 怪异 - 如果我将两个项目作为单独的窗口打开,测试项目运行正常;但是,如果我为主项目执行调试配置,则弹出的页面位于“等待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个回答
0
投票

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

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

注意:这可能不是一个错误,而是预期的行为,而我自己还没有完全理解Just-In-Time模式的工作原理。

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

© www.soinside.com 2019 - 2024. All rights reserved.