在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?