PhpStorm 本地调试停止工作 - 您在设置中看到问题吗?
Posted
技术标签:
【中文标题】PhpStorm 本地调试停止工作 - 您在设置中看到问题吗?【英文标题】:PhpStorm local debugging stopped working - Do you see problem in setup? 【发布时间】:2019-10-21 08:57:15 【问题描述】:我曾经让 phpStorm 在我的计算机上出色地工作。没有浏览器扩展。我可以在任何地方放置断点,转到浏览器中的某个 URL,按 Enter,然后我会自动转到给定文件中的断点。当我单步执行代码时,项目中的文件会自动打开。
现在,一团糟。
首先是我在 xdebug.ini 中的 Xdebug 信息(我没有在 php.ini 中指定任何与 Xdebug 相关的内容):
zend_extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so
[xdebug]
xdebug.remote_enable=on
xdebug.default_enable=on
xdebug.remote_port=9000
xdebug.remote_host=localhost
如果我运行 php -v
我会得到
PHP 7.0.15 (cli) (built: Feb 13 2017 10:30:54) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.15, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
iMac:xdebug-2.7.2 $
phpinfo()
显示基于我的 .ini 设置的相应值。
在 PhpStorm 中,我将 PHP CLI 设置为 7.0,它显示 Xdebug 2.7.2。
对“无法加载 xdebug”消息感到好奇,但 php -v
没有显示相同的消息。起初,我在 php.ini 和 xdebug .ini 中都定义了 zend_extension,并且在执行 php -v
时会看到该消息,但在从 php.ini
删除后,该消息从 php -v
消失了。
我不知道是否需要在构建、部署的调试设置下做任何事情,但这是默认设置:
另外,我将我的项目设置为与远程服务器同步,但为了调试,我不想使用路径映射。这就是我以前的方式,关于调试会话结束和未找到路径映射的 PhpStorm 消息从来都不是问题。
这是我的Run->Config
过去,我不担心起始 URL。无论我在浏览器中输入什么 URL,它都会触发调试。
这是我在路径映射方面尝试过的:
我这样做是为了看看它是否能解决问题,但没有。
我的直觉说这要么是 Xdebug 设置、我的 run->config 的问题,要么是我使用虚拟主机并且某处存在 localhost 条目导致问题的事实。
所以我很茫然。如果我选择Listen for incoming...
并转到 URL,则焦点不会转到具有当前断点的 PhpStorm。我在浏览器中看到事情停止了,我去 PhpStorm 并看到调试被触发。但是我点击跳过或进入调试的第二个就结束了。
我所做的事情有什么明显的错误吗?
编辑:这是我在 xdebug 日志中看到的内容:
[89603] W: Creating socket for 'dev.courses.com:9000', poll success, but error: Operation now in progress (19).
[89603] E: Could not connect to client. :-(
[89603] Log closed at 2019-10-21 10:42:37
[89603]
[89603] Log opened at 2019-10-21 10:42:37
[89603] I: Connecting to configured address/port: dev.courses.com:9000.
[89603] W: Creating socket for 'dev.courses.com:9000', poll success, but error: Operation now in progress (19).
[89603] E: Could not connect to client. :-(
[89603] Log closed at 2019-10-21 10:42:37
不确定错误的细节...也许这暗示了一些事情?我的问题是我在配置中的哪个位置指定 localhost 和我的虚拟主机别名?也许这就是把事情搞砸的原因?
【问题讨论】:
【参考方案1】:您可以通过使用xdebug.remote_log=/tmp/xdebug.log
设置来了解Xdebug 正在尝试做什么。此日志将指示正在进行哪些连接尝试,以及它们成功与否的原因。
【讨论】:
【参考方案2】:好的,所以这是一个xdebug
问题,虽然一开始并不明显。
本来我并没有想到要查看 PHPStorm 日志。但是 PHPStorm 日志显示了
Argument for @NotNull parameter 'remoteFileUrl' of com/jetbrains/php/debug/xdebug/debugger/XdebugDriver.onBreak must not be null
搜索上述错误将我带到
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001498520-xdebug-works-only-with-first-line
原来我的 PHPStorm 版本无法与 xdebug
2.7 一起使用,所以我降级到 2.6.1,一切都很好:-)
谢谢, 布赖恩
【讨论】:
以上是关于PhpStorm 本地调试停止工作 - 您在设置中看到问题吗?的主要内容,如果未能解决你的问题,请参考以下文章
phpstorm配置xdebug进行远程调试(ubuntu)
VS 本地调试 x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作” 问题解决
本地环境 XAMPP+phpStorm+XDebug+chrome配置和断点调试