调试会话在没有暂停的情况下完成
Posted
技术标签:
【中文标题】调试会话在没有暂停的情况下完成【英文标题】:Debug session was finished without being paused 【发布时间】:2020-09-04 07:38:36 【问题描述】:在我使用 phpStorm (2018.1) 的 Laravel 项目中,我无法使用 xdebug (2.9.5) 调试我的会话。任何断点都会被忽略,会话结束而不被暂停。如果我在 PHP 脚本中设置 Break at first line,那么会话将在 index.php 文件处停止。我正在使用 Ubuntu 20.04。
PHP 7.4.5 (cli) (built: Apr 23 2020 08:10:29) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Xdebug v2.9.5, Copyright (c) 2002-2020, by Derick Rethans
这是我在 php.ini 中的 xdebug 设置
[xdebug]
zend_extension = /opt/lampp/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9001
xdebug.remote_log="/tmp/xdebug.log"
我有一些 PhpStorm 设置:
我在这里错过了什么?
我的 Chromium 中也有 Xdebug 帮助程序扩展,但启用和禁用它似乎具有相同的效果。
【问题讨论】:
尝试删除Servers
条目并取消选中 PHP | Debug | Ignore external connections through unregistered server configurations
,在下一个调试会话中,PhpStorm 应该会向您显示传入连接对话框并自行确定映射。
我这样做了很多次。 通过未注册的服务器配置忽略外部连接始终未选中。
Xdebug 有时会很棘手。您是否通过浏览器访问该页面?它是直接在您的系统中运行,还是您有像 vagrant 或 Docker 这样的虚拟层?
@AlexBor 1) 为这种不成功的调试会话启用并收集 Xdebug 日志 2) 那是什么文件(断点在哪里)?我的意思是完整的路径。 3) 路径中有符号链接吗? 4) 那是本地还是远程/虚拟 PHP? 5) 如果你把xdebug_break();
放在你的代码中——它会停在那里吗?
它直接在我的系统中。日志可以在这里找到:paste.ubuntu.com/p/P8WTQfcdPV xdebug_brake() 什么都不做。这是本地设置,而不是远程设置。据我所知,路径中没有符号链接。
【参考方案1】:
在我使用 PhpStorm (2018.1) 的 Laravel 项目中,我无法使用 xdebug (2.9.5) 调试我的会话。
它刚刚触发:
PhpStorm 2018.1 Xdebug 2.9.5您必须升级 PhpStorm。 您需要 PhpStorm 2018.3 或更新版本才能使用 Xdebug 2.7 或更新版本。
问题出在 Xdebug 协议中更改的 XML 命名空间中,从 Xdebug 2.7(https 代替 http)开始。它自 PhpStorm 2018.3 起已修复/受支持(请参阅 WI-43622)。
使用您当前的 IDE 版本,您可以使用 Xdebug 2.6.x max(不支持 PHP 7.4)。
【讨论】:
好的,我会更新 PhpStorm,请随时关注,谢谢。 是的,它适用于 PhpStorm 2020.1。太棒了,非常感谢。以上是关于调试会话在没有暂停的情况下完成的主要内容,如果未能解决你的问题,请参考以下文章
在没有调试器的情况下运行时,ProgressBar 会“卡住”