0

我很肯定这是一个 xdebug 问题,而不是 PHPStorm 问题,但要明确一点,我在本地使用 PHPStorm 来调试驻留在远程服务器上的 PHP 代码。我在服务器上设置了 xdebug,并在服务器上的 php.ini 中使用以下配置:

zend_extension=/home/httpd/php_extensions/xdebug-2.1.4/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.idekey=PHPSTORM-XDEBUG

我已将 PHPStorm 设置为我的本地调试器。我在 Chrome 中使用 XDebug Helper 或在 Firefox 中使用简单的 Xdebug 来初始化 xdebug(无论我使用哪个,我的问题都会出现)。一般来说,调试工作正常。我可以设置断点、单步执行代码、查看变量等。

当某些请求从未收到来自服务器的响应时,就会出现问题。服务器只是从不响应,我已经使用 Charles Web 调试代理验证了这一点。这总是发生在相同的特定请求上,并且无论是否设置断点都会发生。没有收到响应的请求都是相似的——它们调用一个 php 脚本,该脚本缩小并连接多个 JavaScript 文件并回显结果。

为了排除故障,我通过将其添加到 php.ini 来启用 xdebug 日志记录:

xdebug.remote_log=/home/httpd/xdebug.log

当我在日志中查找被命中的 php 文件的名称作为这些有问题的请求的端点时,我得到 0 个结果(除非我明确地向该端点添加了断点)。当我向该端点(minify.php)添加断点时,我可以在 PHPStorm 中单步执行它,即使通过回显缩小和连接的 JS 代码,它似乎也可以通过代码——但响应仍然从未发送据我的本地机器所知,从服务器。

知道这里发生了什么吗?这真的妨碍了我使用 xdebug 的能力。谢谢。

4

2 回答 2

0

cookie 很可能不会传播到这些请求。我建议看看你是否可以设置xdebug.remote_autostart,然后它是否会尝试连接?

于 2012-05-18T09:50:55.000 回答
0

感谢您的回复。这不是问题,但它让我进一步挖掘。原来是一个错误,当 php 调用 exit() 时 xdebug 崩溃。使用最新的候选版本修复了此处指定的问题:

http://bugs.xdebug.org/view.php?id=815

谢谢!

于 2012-05-18T15:11:43.547 回答