【问题标题】:PhpStorm not displaying xdebug as stopped on breakpoint (docker)PhpStorm 未将 xdebug 显示为在断点处停止(docker)
【发布时间】:2018-10-10 16:05:10
【问题描述】:

所以我让我的 webserver 容器愉快地运行 xdebug,并且我有 xdebug.remote_log 设置,所以我可以诊断问题。如果我在第一行设置断点,phpstorm 会按预期运行,它会中断,为您提供正常选项。但是,如果您允许它继续运行超过该点,phpstorm 会出现代码超时的现象,它就会挂起。但是,如果我在此期间读取 xdebug remote_log,它报告它已成功命中我设置的下一个断点并在那里等待,phpstorm 将代码显示为正在执行。

以下是一些配置截图等:

php.ini

设置 > 语言和框架 > php > 调试

设置 > 语言和框架 > php > 服务器 > localhost (docker) 也就是我唯一添加的服务器

xdebugs remote_log 末尾的屏幕截图。然后从 public/index.php 初始断点开始,我允许它运行。然后在这里它声明它在 ListController.php 中中断,这是下一个放置断点的正确位置。正如您可能从上一张图片中猜到的那样,在 docker 中,repo 位于 /srv/www 中,而在我的本地,它位于 /home/myname/Development/projectName/checkout 中。

xdebug remote_log:https://pastebin.com/faiQqwMT

some code so stackoverflow will let me link the log

我的idea.log中唯一有趣的部分

2018-10-12 10:18:23,772 [81267328] 错误 - plication.impl.ApplicationImpl - com/jetbrains/php/debug/xdebug/debugger/XdebugDriver.onBreak 的 @NotNull 参数“remoteFileUrl”的参数不得为空 java.lang.IllegalArgumentException:com/jetbrains/php/debug/xdebug/debugger/XdebugDriver.onBreak 的 @NotNull 参数“remoteFileUrl”的参数不能为空 在 com.jetbrains.php.debug.xdebug.debugger.XdebugDriver.$$$reportNull$$$0(XdebugDriver.java) 在 com.jetbrains.php.debug.xdebug.debugger.XdebugDriver.onBreak(XdebugDriver.java) 在 com.jetbrains.php.debug.xdebug.debugger.XdebugDriver$4.onResponse(XdebugDriver.java:172) 在 com.jetbrains.php.debug.xdebug.debugger.XdebugDriver$4.onResponse(XdebugDriver.java:167) 在 com.jetbrains.php.debug.connection.PhpDebugConnection.handleInput(PhpDebugConnection.java:256) 在 com.jetbrains.php.debug.connection.PhpDebugConnection.lambda$startReading$2(PhpDebugConnection.java:290) 在 com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

【问题讨论】:

  • 您是否将项目目录添加到包含路径?有什么原因吗?
  • @Ástþór 我不知道你在问什么
  • 在最后一个屏幕截图中,您在项目文件和包含路径中列出了相同的路径。理想情况下,您不应该这样。问题(我猜)是在代码进入其他 PHP 文件后 IDE 无法找到正确的路径映射。如果您能分享您的 xdebug.log 文件 + 说明您的项目结构(向我们展示调试中涉及的文件),那就太好了
  • 如果我填写一个,它会填写两个。我猜这也是映射的问题,它应该怎么看?明天上班时我会更详细地截取一些问题的屏幕截图
  • 谢谢!这是一个已知的错误:youtrack.jetbrains.com/issue/WI-43622。切换到 XDebug 2.6

标签: docker intellij-idea docker-compose phpstorm xdebug


【解决方案1】:

这是一个已知错误:https://youtrack.jetbrains.com/issue/WI-43622。切换回 XDebug 2.6 应该可以解决它。

【讨论】:

  • 对于 2019 年遇到此问题的任何人,PhpStrom (2019.1.1) 上的最新版本似乎解决了该问题。尝试使用 xdebug 2.7.0 调试环境时,我遇到了 PhpStorm 锁定问题,更新 PhpStorm 后,我可以毫无问题地调试此环境。上面链接的票证中提到了这一点:youtrack.jetbrains.com/issue/…
  • 谢谢,通过升级 PHPStrom 版本它正在工作:) @
猜你喜欢
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
  • 2013-08-31
  • 2019-07-31
  • 1970-01-01
  • 2020-02-01
  • 2015-09-11
相关资源
最近更新 更多