vscode远程调试WSL中的C++ 代码
开启WSL开关,立即重启电脑。
·
1、WSL环境准备,
开启WSL开关,立即重启电脑
我发现wsl开启后,vmware运行虚拟机会报错"VMware Workstation 在此主机上不支持嵌套虚拟化",这个兼容问题暂时没解决

2、安装ubuntu系统
打开Microsoft store,选择ubuntu获取安装即可

2.1、wsl相关命令记录(在终端上输入)
1、暂停wsl中的ubuntu系统运行
wsl --terminate Ubuntu-20.04
2、查看当前已安装的wsl发行版名称(查看当前正在运行的wsl)
wsl -l -v
3、如何删除wsl已经安装Ubuntu系统
wsl --unregister Ubuntu-20.04

3、vscode相关插件安装
3.1、wsl插件安装

3.2、C/C++插件安装
可参考我的另一篇插件安装
https://blog.csdn.net/GHL284271090/article/details/155744247?spm=1001.2014.3001.5502
4、vscode连接wsl环境

连接成功,vscode左下角状态如图
5、用vscode打开unbuntu上代码
6、新建launch.json、c_cpp_properties.json文件
6.1、在vscode界面上,右键.vscode,新建这3个文件

6.2、launch.json(调试器配置文件)内容如下:(这步要配置好,否则无法调试、下断点)
{
"version": "0.2.0",
"configurations": [
{
"name": "chatserver",
"type": "cppdbg",
"request": "launch",
"program": "/home/user/code/flamingo-master/flamingoserver/chatserver",
"args": [],
"stopAtEntry": false,
"miDebuggerArgs": "",
"cwd": "/home/user/code/flamingo-master/flamingoserver",
"environment": [],
"externalConsole": false,
"pipeTransport": {
"debuggerPath": "/usr/bin/gdb",
"pipeProgram": "/usr/bin/bash",
"pipeArgs": [
"-c"
],
"pipeCwd": ""
},
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
]
}
相关字段讲解说明
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug chatserver", // 调试配置名称(显示在下拉菜单中)
"type": "cppdbg", // 调试器类型(cppdbg = C/C++)
"request": "launch", // 启动方式:launch(本地运行)或 attach(附加到进程)
"program": "${workspaceFolder}/chatserver", // 要调试的可执行文件路径
"args": [], // 程序启动参数
"stopAtEntry": false, // 是否在 main 函数入口暂停
"cwd": "${workspaceFolder}", // 工作目录
"environment": [], // 环境变量
"externalConsole": false, // 是否使用外部终端
"MIMode": "gdb", // 使用 GDB 作为底层调试器
"setupCommands": [ // GDB 初始化命令
{
"description": "Enable pretty-printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build-chatserver" // 调试前自动执行的任务(关联 tasks.json)
}
]
}
6.3、c_cpp_properties.json(只管“智能提示”——告诉 VS Code 头文件在哪、用啥标准、开哪些宏;写不对就红波浪线,写对了一键跳转爽到飞起),内容如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"/usr/include",
"${workspaceFolder}"
],
"defines": [
],
"compilerPath": "/usr/bin/gcc",
"intelliSenseMode": "gcc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"${workspaceFolder}"
]
}
}
],
"version": 4
}
相关字段说明如下:
{
"configurations": [
{
"name": "Linux", // 配置名称(显示在状态栏)
"includePath": [ // 头文件搜索路径(最关键!)
"${workspaceFolder}/**",
"/usr/include",
"/usr/local/include"
],
"defines": [ // 预处理器宏定义
"__linux__",
"DEBUG"
],
"compilerPath": "/usr/bin/gcc", // 编译器路径(用于推导默认 include 和 C++ 标准)
"cStandard": "c17", // C 语言标准
"cppStandard": "c++17", // C++ 语言标准
"intelliSenseMode": "linux-gcc-x64", // IntelliSense 模式(匹配平台和编译器)
"configurationProvider": "ms-vscode.cmake-tools" // 可选:由 CMake Tools 动态提供配置
}
],
"version": 4
}
7、调试程序,F5启动调试

至此,可以用vscode调试WSL中的C++ 代码;这个只是锦上添花功能,基本功gdb调试一定要熟练掌握。
更多推荐
所有评论(0)