调试会话在没有暂停的情况下完成

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。太棒了,非常感谢。

以上是关于调试会话在没有暂停的情况下完成的主要内容,如果未能解决你的问题,请参考以下文章

我可以在运行 VS 单元测试时进行调试吗?

在没有调试器的情况下运行时,ProgressBar 会“卡住”

运行/调试你的PHP代码

vs2012调试出错

如何在使用 Segger J-link pro 和 Stm32cubeIDE 进行调试期间暂停看门狗计数器

keil mdk 调试的时候没有黄色箭头