Debugging 使用XDebug+进行调试;PHPStorm迫使我总是进入

Debugging 使用XDebug+进行调试;PHPStorm迫使我总是进入,debugging,phpstorm,xdebug,codeception,Debugging,Phpstorm,Xdebug,Codeception,我正在尝试调试我的Codeception测试 我的调试平台使用PHPStorm+XDebug从浏览器中使用右边的IDE键作为cookie时工作得非常好 但是,当尝试使用CLI调试codecept时,我遇到以下问题: 如果我在我的Cest类中设置一个断点,行为是正常的。我可以跳过函数并单击“恢复”停止调试 但每当我在代码(即控制器或命名空间类)中放置断点时,xdebug就变得不可用: 如果我尝试恢复、退出或跳过,xdebug将忽略我的请求,并始终进入当前行 这使得我的测试很难继续下去 我尝试过

我正在尝试调试我的Codeception测试

我的调试平台使用PHPStorm+XDebug从浏览器中使用右边的IDE键作为cookie时工作得非常好

但是,当尝试使用CLI调试codecept时,我遇到以下问题:

  • 如果我在我的Cest类中设置一个断点,行为是正常的。我可以跳过函数并单击“恢复”停止调试
  • 但每当我在代码(即控制器或命名空间类)中放置断点时,xdebug就变得不可用:
如果我尝试恢复退出跳过,xdebug将忽略我的请求,并始终进入当前行

这使得我的测试很难继续下去

我尝试过使用两个平台:我常用的vagrant+nginx+php5 fpm(带远程调试),以及wamp(本地调试)

任何帮助都将不胜感激

--

更新: 好吧,这与编码感知无关。我试着用PHPUnit进行测试,结果也是一样。似乎CLI也没有问题,因为我尝试从浏览器调试PHPUnit,但没有成功

我认为这可能是PHPStorm错误,但查看xdebug日志,我发现正确的方法被调用:

<- step_over -i 41
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_over" transaction_id="41" status="break" reason="ok">

这是一步一步来,而不是一步一步来。那么也许是xdebug的一个bug


奇怪的是,这并不总是发生。在更改配置后,它有时不会发生,但随后错误似乎又回来了…

我遇到了同样的问题,并能够通过删除.idea目录并让PHPStorm重新创建来修复它

这对我来说似乎是一个沉重的修复,经过一些尝试和错误之后,我能够将问题追溯到PHPStorm中定义的手表


您应该能够通过卸下所有手表来解决此问题。您可能需要让当前调试会话完成,但下一个调试会话应该可以正常工作。

我也遇到了类似的问题。对我来说,无论我提出什么要求,PHPStorm总是跳出去


移除所有手表也解决了我的问题

我也遇到了同样的问题,除了我的Storm退出而不是退出(这导致了很短的调试经验)。在阅读您的解决方案后,我做的第一件事是重命名我的.idea目录。令人惊讶的是,它成功了(在我尝试了其他几种根本没有效果的解决方案之后)。然后我将目录命名为.idea,问题返回。在那之后,我试着把我所有的手表都取下来,瞧,它又开始工作了。非常感谢你,这让我快发疯了!这个问题与IDE本身无关。我在使用带有“php调试”扩展名的VScode时遇到了同样的问题。这个问题似乎与x-debug本身有关。这救了我一天