在WSL环境下进行VSCode插件调试的完整步骤

风墨吖_2174

风墨吖_2174

2026-09-21

505人浏览

原创

插件必须安装在wsl中,windows端安装无效;vscode在wsl模式下为“前端windows、后端linux”,语言服务、调试器等均依赖wsl环境变量与path,windows侧插件在wsl窗口中灰显且不可用。

在wsl环境下进行vscode插件调试的完整步骤

插件必须装在WSL里,Windows装了没用

VSCode在WSL模式下实际是“前端在Windows、后端在Linux”运行,所有语言服务、调试器、编译器调用都走WSL的PATH和环境变量。你在Windows侧安装的C/C++PythonCMake Tools等插件,对WSL窗口完全不可见——它们只会灰显,按钮显示Install in WSL: Ubuntu

常见错误现象:状态栏左下角显示WSL: Ubuntu,但打开launch.json时提示No debug configuration found;或者按F5报错gdb not found,尽管which gdb在终端里能返回/usr/bin/gdb

  • 确认当前是WSL上下文:终端提示符应为username@hostname:~$,且uname输出Linux
  • 打开扩展面板(Ctrl+Shift+X),搜索插件名,点击Install in WSL: Ubuntu(不是“Install”)
  • 若已装过本地版,点插件右上角云端图标Install Local Extensions in WSL: Ubuntu一键同步(仅同步兼容插件)
  • 禁用所有非必要本地插件,避免干扰:比如Windows侧的GitLens会抢git命令,导致WSL里git status异常

项目路径必须放在/home/xxx/,别放/mnt/c/

WSL对/mnt/c/挂载的Windows文件系统有严重限制:不支持inotify(文件变更监听失效)、无完整POSIX权限、符号链接损坏、I/O性能下降5–10倍。这会导致插件功能直接降级甚至崩溃——比如CMake Tools无法自动检测CMakeLists.txt变更,Python扩展找不到venv里的pyd模块。

使用场景:你执行git clonenpm install后发现Permission deniedENOSPC,基本就是路径错了。

  • 在WSL终端中创建项目:mkdir -p ~/projects/myapp && cd ~/projects/myapp
  • 从这里启动VSCode:code . (注意空格+英文句点)
  • 资源管理器路径应显示为wsl$Ubuntu-22.04homeusernameprojectsmyapp,而非\wsl$Ubuntu-22.04mntc...
  • 已误操作?删掉/mnt/c/xxx下的项目,重新git clone/home/xxx/再开

launch.jsonprogrammiDebuggerPath必须用WSL路径

即使VSCode连上了WSL,C/C++插件默认仍可能读取Windows注册表或PATH去调用gdb.exe,导致调试器启动失败,报错Unable to start debugging. Cannot launch programFailed to launch gdb

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载

关键参数差异:program不能写C:path o.outmiDebuggerPath不能留空或指向Windows路径。

  • program:必须是Linux绝对路径,如"${workspaceFolder}/build/app"(确保build/在WSL内生成)
  • miDebuggerPath:显式指定,如"/usr/bin/gdb"(验证用which gdb
  • cwd:设为"${workspaceFolder}",避免相对路径解析错乱
  • 删掉sourceFileMap字段(旧配置遗留项,WSL 2无需映射)

示例片段:

{
  "name": "(gdb) Launch",
  "type": "cppdbg",
  "request": "launch",
  "program": "${workspaceFolder}/build/hello",
  "miDebuggerPath": "/usr/bin/gdb",
  "args": [],
  "stopAtEntry": false,
  "cwd": "${workspaceFolder}",
  "externalConsole": false,
  "MIMode": "gdb"
}

调试器启动失败?先检查gdbbuild-essential是否真在WSL里

微软提供的Ubuntu镜像默认极简,gdbg++make都不预装。VSCode插件不会帮你补全这些依赖——它只调用,不安装。

性能影响:如果gdb缺失,调试器进程会卡在启动阶段,CPU占用飙升但无日志;若gdb版本太老(如Ubuntu 20.04自带的9.x),可能不支持-enable-pretty-printing,导致变量展开为空。

  • 在WSL终端运行:sudo apt update && sudo apt install -y build-essential gdb cmake
  • 验证:g++ --versiongdb --versioncmake --version都应返回有效输出
  • 若用condaminiforge,确保gdb也通过conda install gdb安装(部分conda包含独立gdb)
  • 调试前,在VSCode集成终端执行一次gdb --version,确认PATH生效

容易被忽略的地方:WSL发行版升级后(如从20.04升到22.04),旧版gdb可能残留,which gdb返回/usr/local/bin/gdb但实际不可用,需sudo apt remove gdb再重装。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1155

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2252

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1789

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1587

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2487

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1758

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1202

10

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1076

8

vscode设置中文界面不生效解决方法
vscode设置中文界面不生效解决方法

vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

394

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程