在 PhpStorm 中使用 Xdebug 时得到 "Debug session was finished without being paused" 并且没有停止执行
Getting "Debug session was finished without being paused" and no stop in execution when using Xdebug in PhpStorm
我正在尝试使用 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 client, waited: 200 ms
的多条错误消息,但设置断点会正确停止我的网络应用程序。在尝试修复此问题后,我现在在 PhpStorm 中收到以下错误:
"调试会话未暂停就完成了这可能是由于路径映射配置错误或本地和远程项目未同步造成的。"
我采取的步骤:
- 根据Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003在20-xdebug.ini中设置
xdebug.start_with_request=trigger
成功修复了超时警告信息
- 向控制器添加断点
- 在 Xdebug Chrome 扩展中启用调试
- 在 PhpStorm 中启用侦听 PHP 调试连接
- 导航到应导致命中断点的视图
- 执行在每个视图上停止(即使是那些在控制器中没有断点的视图)并且 PhpStorm 调试器终端出现错误消息
Click to set up path mappings
- 选中“使用路径映射”复选框,消除了映射错误
我期待的是:
- 我的网页和控制器的执行在命中断点的事件中停止。
实际结果:
- 每个网页都加载并且断点不会停止执行(我尝试了额外的断点以确保它不是一个孤立的问题)
- 我在 PhpStorm 事件日志中收到“调试会话已完成且未暂停”警告。
我采取的进一步措施没有成功:
- 将触发器设置改回
xdebug.start_with_request=yes
- 在路径映射设置中添加服务器上的绝对路径
配套内容:
事件日志消息
PhpStorm Xdebug 设置
我的问题的影响:
- 它阻止我诊断我的 Web 应用程序中的 CSRF 问题,我需要修改它以具有功能登录表单。
非常感谢您的帮助!
我在问题中提供了很多细节,但事实证明这是一个非常简单的答案...经典!
对于其他人,我所做的只是使缓存无效并重新启动 PHPStorm
- 转到文件 > 使缓存无效...
- 选中“清除下载的共享索引”
- 单击“无效并重新启动”
结果:
- 断点现在停止在正确的视图上执行
希望对您有所帮助。
我正在尝试使用 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 client, waited: 200 ms
的多条错误消息,但设置断点会正确停止我的网络应用程序。在尝试修复此问题后,我现在在 PhpStorm 中收到以下错误:
"调试会话未暂停就完成了这可能是由于路径映射配置错误或本地和远程项目未同步造成的。"
我采取的步骤:
- 根据Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003在20-xdebug.ini中设置
xdebug.start_with_request=trigger
成功修复了超时警告信息 - 向控制器添加断点
- 在 Xdebug Chrome 扩展中启用调试
- 在 PhpStorm 中启用侦听 PHP 调试连接
- 导航到应导致命中断点的视图
- 执行在每个视图上停止(即使是那些在控制器中没有断点的视图)并且 PhpStorm 调试器终端出现错误消息
Click to set up path mappings
- 选中“使用路径映射”复选框,消除了映射错误
我期待的是:
- 我的网页和控制器的执行在命中断点的事件中停止。
实际结果:
- 每个网页都加载并且断点不会停止执行(我尝试了额外的断点以确保它不是一个孤立的问题)
- 我在 PhpStorm 事件日志中收到“调试会话已完成且未暂停”警告。
我采取的进一步措施没有成功:
- 将触发器设置改回
xdebug.start_with_request=yes
- 在路径映射设置中添加服务器上的绝对路径
配套内容:
事件日志消息
PhpStorm Xdebug 设置
我的问题的影响:
- 它阻止我诊断我的 Web 应用程序中的 CSRF 问题,我需要修改它以具有功能登录表单。
非常感谢您的帮助!
我在问题中提供了很多细节,但事实证明这是一个非常简单的答案...经典!
对于其他人,我所做的只是使缓存无效并重新启动 PHPStorm
- 转到文件 > 使缓存无效...
- 选中“清除下载的共享索引”
- 单击“无效并重新启动”
结果:
- 断点现在停止在正确的视图上执行
希望对您有所帮助。