要使用VSCode附加模式调试Node.js或Python进程,需先以可调试方式启动程序。对于Node.js,通过--inspect系列参数开启调试端口(如9229),并在launch.json中配置"request": "attach"及对应端口;对于Python,需安装debugpy,在代码中调用debugpy.listen(5678)并配置launch.json的"type": "python"和连接地址端口,随后在VSCode中选择对应配置即可连接调试。

要使用 VSCode 以附加(Attach)模式调试正在运行的 Node.js 或 Python 进程,需要先确保程序是以可调试方式启动的,然后在 VSCode 中配置对应的 launch.json 文件来连接到该进程。
Node.js:附加到正在运行的进程
Node.js 从 v8 开始支持 Inspector 协议,可通过 --inspect 标志启用调试端口。
1. 启动 Node.js 应用时开启调试端口:
运行应用时添加 --inspect 或 --inspect-brk 参数:
立即学习“Python免费学习笔记(深入)”;
-
node --inspect app.js:监听 9229 端口,允许附加调试器 -
node --inspect=9230 app.js:指定自定义端口 -
node --inspect-brk app.js:启动时暂停,等待调试器连接
2. 配置 VSCode 的 launch.json:
在项目根目录下的 .vscode/launch.json 中添加:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Node.js",
"type": "node",
"request": "attach",
"port": 9229,
"address": "localhost",
"restart": true,
"skipFiles": [
"/**"
]
}
]
} 如果使用了非默认端口(如 9230),请修改 port 值。
3. 启动调试:
在 VSCode 中选择 “Attach to Node.js” 配置并启动调试器,即可连接到正在运行的进程,设置断点并检查变量。
Python:附加到正在运行的进程(使用 debugpy)
Python 官方推荐使用 debugpy 包实现调试附加功能。
1. 安装 debugpy:
在目标环境中安装 debugpy:
pip install debugpy
2. 修改 Python 脚本,嵌入调试服务器:
在代码开头附近加入以下内容:
import debugpy
debugpy.listen(5678)
print("⏳ Waiting for debugger attach...")
debugpy.wait_for_client() # 可选:等待连接后再继续
或直接后台监听不阻塞:
import debugpy debugpy.listen(5678)
3. 正常运行 Python 脚本:
例如:
python app.py
此时脚本会监听 5678 端口等待调试器连接。
4. 配置 VSCode 的 launch.json:
确保已安装 Pylance 和 Python 扩展,然后在 .vscode/launch.json 中添加:
{
"name": "Attach to Python",
"type": "python",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
]
}5. 启动调试:
在 VSCode 中选择 “Attach to Python” 配置,点击启动。连接成功后即可设置断点、查看调用栈。
常见问题与注意事项
- 确保调试端口未被占用,防火墙未阻止连接
- Node.js 多进程或集群模式下,每个 worker 需独立调试端口
- Python 使用 Docker 时,需映射 debugpy 端口(如 -p 5678:5678)并调整 host 配置
- 附加调试无法捕获连接前已执行的代码,关键逻辑前建议加 wait_for_client()
基本上就这些。只要进程开启了调试支持,VSCode 就能通过 Attach 模式连接进去。









