我正在尝试使用 Xdebug 3.0 和 PhpStorm 2021.1 调试我的 Web 应用程序中的问题。我使用 Debian 10 在 WSL2 上进行设置,我在其中安装了 Xdebug 并在 /etc/php/7.3/fpm/conf.d/20-xdebug.ini
中使用了以下设置:
zend_extension=xdebug.so xdebug.session=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=XXX.XX.XXX.X
xdebug.client_port=9000
xdebug.max_nestling_level=10000
xdebug.log="/var/log/xdebug.log"
xdebug.idekey=xdebug
我正在使用 Symfony 5.3,当我使用 symfony server:log
来流式传输日志时,我收到了 Xdebug: [Step Debug] Time-out connecting to debugging 的多条错误消息客户端,等待:200 毫秒
,但设置断点会正确停止我的网络应用程序。在尝试修复此问题后,我现在在 PhpStorm 中收到以下错误:
“调试 session 在没有暂停的情况下完成这可能是由于路径映射配置错误或未同步本地和远程项目造成的。”
我采取的步骤:
- 根据Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003在20-xdebug.ini中设置
xdebug.start_with_request=trigger
成功修复了超时警告消息 - 向 Controller 添加断点
- 在 Xdebug Chrome 扩展程序中启用调试
- 在 PhpStorm 中启用 PHP 调试连接监听
- 导航到应该导致命中断点的 View
- 执行在每个 View 上停止(即使是那些在 Controller 中没有断点的 View )并且 PhpStorm 调试器终端出现错误消息
Click to set up path mappings
- 选中“使用路径映射”复选框以消除映射错误
我期待的是:
- 我的网页和 Controller 的执行在命中断点的事件期间停止。
实际结果:
- 每个网页都会加载并且断点不会停止执行(我尝试了额外的断点以确保这不是一个孤立的问题)
- 我在 PhpStorm 事件日志中收到“调试 session 已完成且未暂停”警告。
我采取的进一步措施没有成功:
- 将触发器设置改回
xdebug.start_with_request=yes
- 在路径映射设置中添加服务器上的绝对路径
支持内容:
我的问题的影响:
- 它阻止我诊断我的 Web 应用程序中的 CSRF 问题,我需要修改该应用程序以具有功能性登录表单。
非常感谢您的帮助!
最佳答案
我在问题中提供了很多细节,但事实证明这是一个非常简单的答案......经典!
对于其他人,我所做的只是使缓存无效并重新启动 PHPStorm
- 转到"file">“使缓存无效...”
- 选中“清除下载的共享索引”
- 点击无效并重新启动
结果:
- 断点现在停止在正确的 View 上执行
希望对您有所帮助。
关于php - 在 PhpStorm 中使用 Xdebug 时获取 "Debug session was finished without being paused"并且没有停止执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68792468/