调试用的XDebug + PHPStorm逼我总是步入(Debugging with XDebug

2019-10-23 06:35发布

我试图调试我Codeception测试。

使用PHPStorm + XDebug的我调试平台从浏览器中使用与正确的IDE-KEY作为cookie时伟大的工作。

然而,当试图调试codecept使用我会遇到以下问题CLI:

  • 如果我把一个断点在我CEST类,行为是正常的。 我能跳过功能,然后点击“继续”以停止调试。
  • 但每当我把一个断点,这是在我的代码(IE控制器或我的命名空间的类),Xdebug的变得不可用:

如果我尝试恢复步出步过 ,Xdebug的忽略我的请求,并始终步入当前行。

这使得我的测试真的很难去与。

我一直在使用这两个平台的尝试:我的两个平时无业游民+的nginx + PHP5-FPM(远程调试),也WAMP(本地调试)。

任何帮助,将不胜感激!

-

更新:嗯,这个有没有关系Codeception。 我试图测试只是使用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">

STEP_OVER叫,不step_into。 所以,也许带有Xdebug的错误吗?

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

Answer 1:

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

删除所有手表也解决了这个问题对我来说!



Answer 2:

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

这似乎是一个沉重的手修复,我和一些试验和错误之后,我能够追查问题下降到PHPStorm中定义的手表。

您应该能够通过删除所有的手表,以解决该问题。 您可能需要让当前的调试会话结束,但下一个应该正常工作。



文章来源: Debugging with XDebug + PHPStorm force me to always step into