xdebug断点不触发的典型原因:一、xdebug.mode未设为debug;二、xdebug.client_host地址错误(docker需用host.docker.internal);三、xdebug.client_port与launch.json中port不一致(默认9003,xdebug 3+已弃用9000)。

PHP接口联调:Xdebug断点不触发的典型原因
断点打了但请求一过就消失,不是代码没跑,是Xdebug根本没连上VS Code。常见于Laravel、ThinkPHP等框架的API接口调试场景。
检查以下三点是否全部满足:
-
xdebug.mode必须设为debug(不是develop或off) -
xdebug.client_host指向 VS Code 所在机器,Docker环境要填容器能解析的地址(如host.docker.internal,而非127.0.0.1) -
xdebug.client_port和 VS Code 的launch.json中port值必须一致,默认是9003,但新版 Xdebug 3+ 不再支持9000
验证方式:在 PHP 脚本开头加 ini_set('xdebug.info', 1);,访问接口时若看到 Xdebug 版本和配置页,说明扩展已加载;但断点仍不生效,问题一定出在通信链路上。
Node.js API调试:条件断点精准拦截特定请求
后端用 Express/Koa 写 REST 接口时,常需只在某个用户 ID 或某类参数下暂停,而不是每次请求都中断。
实操建议:
- 在路由处理函数第一行设普通断点,右键 →
Edit Breakpoint,输入条件如req.query.id === "123"或req.body.status === "pending" - 避免在中间件里设条件断点,因为
req对象可能尚未完全解析(如未挂载 body-parser),优先选在router.post(...)的回调函数内 - Node.js 环境下,条件表达式中不要调用异步函数(如
await db.find()),会阻塞事件循环且调试器不支持
注意:TypeScript 项目必须确认 launch.json 含 "sourceMaps": true 和正确 "outFiles",否则断点打在 .ts 上却停在编译后的 .js 行,变量名也变成 _a_b。
前端调用API时:用Logpoint替代console.log查参
你在 Vue/React 组件里发请求,想看 axios.post('/api/user', payload) 实际传了什么,又不想污染源码加 console.log?
直接在该行左侧设 Logpoint:
- 右键行号 →
Add Logpoint,输入Payload: {JSON.stringify(payload)}(注意不用console.log) - Logpoint 支持简单表达式,但不支持函数调用;
{payload.id}可以,{payload.toString()}会报错 - 输出内容出现在「调试控制台」,不会中断执行,适合高频请求(如搜索框防抖触发的多次
/api/search)
比手动删 console.log 干净,也比打断点后反复按 F10 更省事——尤其当你只想确认参数格式是否符合后端要求时。
跨服务联调:attach模式调试PHP-FPM或Docker容器
本地起 Nginx + PHP-FPM,或 Docker Compose 启动 Laravel + MySQL,断点打不进?大概率是用了 launch 模式而非 attach。
关键区别:
-
launch:VS Code 自己拉起进程,适合 CLI 脚本或单文件 -
attach:VS Code 主动连接已在运行的进程,适用于 PHP-FPM 子进程、Docker 容器里的服务
配置要点:
- PHP-FPM 需开启
catch_workers_output = yes并确保xdebug.start_with_request = trigger(配合请求头XDEBUG_SESSION_START=VSCODE) - Docker 容器启动时加
-p 9003:9003,launch.json中"address"改为"host.docker.internal"(macOS/Windows)或宿主机真实 IP(Linux) - attach 模式下,
"port"是容器内监听端口(如9003),不是映射到宿主机的端口
最易忽略的一点:PHP-FPM 默认以 daemon 模式运行,Xdebug 无法 attach 到后台进程;开发时应改用 php-fpm -F 前台运行,否则断点永远不生效。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











