在VSCode中配置调试器以附加(Attach)到正在运行的进程
发布时间 - 2025-12-16 00:00:00 点击率:次在 VSCode中附加调试器到已运行进程,需配置launch.json的attach类型,并确保目标进程启用调试端口及符号信息;不同语言要求各异:Node.js用--inspect、.NET需调试模式、Python需debugpy.listen、C/C++需-g编译;配置后选择对应启动项即可连接。
在 VSCode 中附加调试器到已运行的进程,关键在于正确配置 launch.json 中的 attach 类型启动项,并确保目标进程支持调试(如启用调试端口、符号信息等)。
确认目标进程支持调试
不同语言/运行时要求不同:
-
Node.js:启动时需加
--inspect或--inspect-brk参数(例如:node --inspect-brk app.js),并确保未禁用远程调试。 -
.NET Core / .NET 5+:需以调试模式运行(如
dotnet run默认启用调试),或确保DOTNET_STARTUP_HOOKS等未干扰调试器连接。 -
Python(使用 ptvsd / debugpy):需在代码中插入
debugpy.listen(5678)并保持运行,或通过命令行启动时指定调试端口。 -
C/C++(GDB/LLDB):进程需未被其他调试器占用,且最好带调试符号(编译时加
-g)。
创建 attach 配置(launch.json)
打开项目根目录下的 .vscode/launch.json(若无则通过命令面板「Debug: Open launch.json」生成),添加一个 type: "attach" 的配置。示例(以 Node.js 为例):
{
"name": "Attach to Process",
"type": "node",
"request": "attach",
"port": 9229,
"address": "localhost",
"localRoot": "${workspaceFolder}",
"remoteRoot": "${workspaceFolder}"
}
注意:port 必须与目标进程实际监听的调试端口一致(Node 默认是 9229,可通过 node --inspect=0.0.0.0:9999 自定义)。
查找并选择目标进程(可选自动端口发现)
VSCode 支持两种 attach 方式:
-
端口模式(推荐):进程已明确监听调试端口,直接填入
port即可连接。 -
进程 ID 模式(部分调试器支持):如 C/C++ 扩展可设
"type": "cppdbg"+"processId": 0,启动后会弹出进程列表供选择。 - 某些扩展(如 Python 的 Debugpy)还支持
"justMyCode": false和"connect": { "host": "localhost", "port": 5678 }直连。
启动附加并验证
点击 VSCode 左侧调试图标 → 选择刚配置的「Attach to Process」→ 点击绿色 ▶ 启动附加:
- 成功时状态栏显示「正在附加…」→「已附加」,断点可命中,变量/调用栈可查看。
- 失败常见原因:端口被占、防火墙拦截、跨平台路径映射错误(
localRoot/remoteRoot不匹配)、进程未启用调试。 - 可在「DEBUG CONSOLE」中查看具体错误提示,比如
Connection refused表示端口不通,Target not found可能是 URL 或路径配置问题。
基本上就这些。只要进程开着调试通道,VSCode 的 attach 调试很直接——配对端口,点一下,就能进现场看状态了。
# python
# vscode
# js
# node.js
# json
# node
# 防火墙
# app
# 端口
# 栈
# c++
# .net
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
七夕网站制作视频,七夕大促活动怎么报名?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何用免费手机建站系统零基础打造专业网站?
如何在阿里云购买域名并搭建网站?
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel Docker环境搭建教程_Laravel Sail使用指南
EditPlus中的正则表达式 实战(1)
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Laravel如何实现事件和监听器?(Event & Listener实战)
独立制作一个网站多少钱,建立网站需要花多少钱?
Python文件操作最佳实践_稳定性说明【指导】
如何挑选优质建站一级代理提升网站排名?
青岛网站建设如何选择本地服务器?
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Swift开发中switch语句值绑定模式
如何快速建站并高效导出源代码?
在线制作视频网站免费,都有哪些好的动漫网站?
网站制作企业,网站的banner和导航栏是指什么?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
如何在云虚拟主机上快速搭建个人网站?
如何在香港免费服务器上快速搭建网站?
JS去除重复并统计数量的实现方法
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
jQuery中的100个技巧汇总
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
进行网站优化必须要坚持的四大原则
详解Huffman编码算法之Java实现
EditPlus 正则表达式 实战(3)
googleplay官方入口在哪里_Google Play官方商店快速入口指南
南京网站制作费用,南京远驱官方网站?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Laravel如何自定义错误页面(404, 500)?(代码示例)
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel如何实现数据库事务?(DB Facade示例)
Python图片处理进阶教程_Pillow滤镜与图像增强
html如何与html链接_实现多个HTML页面互相链接【互相】
Laravel如何配置Horizon来管理队列?(安装和使用)
实例解析angularjs的filter过滤器
网站制作壁纸教程视频,电脑壁纸网站?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
如何快速搭建安全的FTP站点?
百度浏览器如何管理插件 百度浏览器插件管理方法
高防服务器租用如何选择配置与防御等级?
,网页ppt怎么弄成自己的ppt?


}