停止调试时Xdebug不终止PHP脚本,如何设置自动杀死对应进程?
解决方法
1. 调整VSCode PHP Debug启动配置
你只需要在现有的launch.configurations的PHP Debug配置项中,新增"killProcessOnStop": true参数即可,该参数会控制VSCode在你触发停止调试操作时,主动杀掉本次调试启动的PHP CLI进程。
修改后的完整配置参考:
"launch": { "version": "0.2.0", "configurations": [ { "name": "PHP Debug", "type": "php", "request": "launch", "program": "${workspaceFolder}/xdebug.php", "cwd": "${workspaceFolder}", "runtimeArgs": [ "-dxdebug.log=/tmp/xdebug.log", ], "env": { "XDEBUG_MODE": "debug", "XDEBUG_TRIGGER": "true", "XDEBUG_CONFIG": "client_port=${port}", }, "internalConsoleOptions": "openOnSessionStart", // 新增以下配置项 "killProcessOnStop": true }, ], },
2. 可选:补充Xdebug配置(针对特殊场景)
如果调整VSCode配置后仍不生效,可以在php.ini的Xdebug配置段新增以下配置,让Xdebug检测到调试客户端断开连接后自动终止脚本执行:
xdebug.remote_cookie_expire_time = 0 xdebug.max_nesting_level = 256
验证效果
修改配置后重启VSCode,重新运行调试测试脚本,启动调试后立刻点击停止按钮,查看后台PHP进程,即可看到对应进程已被终止,不会继续运行sleep逻辑。
内容的提问来源于stack exchange,提问作者LogicalException
相关产品推荐
相关产品推荐

