因此,我让我的Web服务器容器愉快地运行了xdebug,并且我有xdebug.remote_log设置,因此我可以诊断问题。如果我在第一行上放置一个断点,则phpstorm的行为符合预期,它会中断,为您提供正常的选择。但是,如果您允许它继续运行到该点,则phpstorm看起来代码超时了,它只会挂起。但是,如果我在这段时间内阅读了xdebug remote_log,它报告它已经成功命中了我设置的下一个断点并在那儿等待,phpstorm将代码显示为正在执行。
以下是一些配置截图,例如:
php.ini
设置>语言和框架> php>调试
设置>语言和框架> php>服务器>本地主机(docker)又名我唯一添加的服务器
xdebugs remote_log末尾的屏幕截图。然后从public / index.php初始断点开始运行它。然后在这里指出它在ListController.php中损坏,该位置是下一个放置的断点的正确位置。正如您可能从上一张图像中猜到的那样,在docker中,存储库位于/ srv / www,而在我的本地存储库中,该存储库位于/ home / myname / Development / projectName / checkout。
xdebug remote_log:https://pastebin.com/faiQqwMT
some code so stackoverflow will let me link the 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'的参数不能为null 在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)