作者:文love杨阳_848 | 来源:互联网 | 2022-12-02 16:05
因此,我让我的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
我的idea.log中唯一有趣的部分
2018-10-12 10:18:23,772 [81267328]错误-plication.impl.ApplicationImpl-com / jetbrains / php / debug / xdebug / debugger / XdebugDriver.onBreak的@NotNull参数'remoteFileUrl'的参数Java不能为空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) .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)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)在java.lang.Thread.run(Thread.java:745)java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)在java.lang.Thread.run(Thread.java:745)
1> 小智..:
这是一个已知的错误:https : //youtrack.jetbrains.com/issue/WI-43622。切换回XDebug 2.6应该可以修复它。
对于2019年遇到此问题的任何人,似乎PhpStrom(2019.1.1)的最新版本已解决了该问题。在尝试使用xdebug 2.7.0调试环境时,我遇到了PhpStorm锁定问题的问题,在更新PhpStorm之后,我可以无问题地调试此环境。上面链接的票证的注释中提到了这一点:https://youtrack.jetbrains.com/issue/WI-43622#focus=streamItem-27-3153651.0-0