跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何配置VSCode以附加(Attach)模式调试一个正在运行的Node.js或Python进程?

要使用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: php版微信js-sdk支付接口类 php版微信js-sdk支付接口类 下载
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 模式连接进去。

相关文章