基于Windows安装的vscode远程连接Ubuntu的C++开发环境搭建与代码调试Windows安装vscode,及安装c++相关插件,远程插件
vscode的远程连接Ubuntu
远程连接的详细过程可以参考VS Code 通过SSH远程连接到 Ubuntu 服务器,Ubuntu的远程开发
Ubuntu安装的软件
#这个命令用于在基于 Debian 的 Linux 系统(如 Ubuntu)上安装 OpenSSH 服务器。OpenSSH 允许用户通过安全的 SSH 协议远程登录到系统。安装 openssh-server 后,你可以使用 SSH 客户端连接到服务器,进行远程管理和文件传输。
sudo apt-get install openssh-server
#这个命令用于安装 GDB(GNU Debugger),它是一个强大的调试工具,用于调试 C、C++ 和其他编程语言编写的程序。开发者可以使用 GDB 在程序崩溃时检查堆栈跟踪,设置断点,观察程序的执行等。
sudo apt-get install gdb
#这个命令安装 gdbserver,它是 GDB 的一个服务器端工具,通常用于远程调试。当程序在目标设备或远程机器上运行时,你可以通过 GDB 在本地机器上进行调试。gdbserver 会在目标机器上运行,并等待来自 GDB 客户端的调试连接。
sudo apt-get install gdbserver
添加或修改launch.json
在vscode的菜单栏选择 运行–添加配置,会自动生成launch.json配置文件
默认是这样的:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
我们需要在vscode调试我们的Ubuntu上面的代码,这时我们的例子(例子在这里)中的内容应该这样:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0", // 这是 VS Code 调试配置文件的版本号。一般来说,不需要修改,除非需要与新版本的 VS Code 配合使用。
"configurations": [ // 配置项数组,每个配置项描述如何启动调试会话。
{
"name": "(gdb) Launch", // 配置的名称,这里是 "Launch",用于标识此调试配置,用户在 VS Code 中选择时看到的名称。
"type": "cppdbg", // 调试器类型。`cppdbg` 表示 C++ 调试,意味着该配置是用于调试 C++ 程序的。
"request": "launch", // 启动方式,`launch` 表示启动一个新程序进行调试。如果是 `attach`,则表示附加到一个已经运行的程序上。
"program": "${workspaceFolder}/main", // 要调试的程序路径。`${workspaceFolder}` 是一个 VS Code 变量,指代当前工作空间的根目录。最终路径会被解析为:`<workspaceFolder>/bin/program`,即程序的执行文件。
"args": [], // 启动程序时传递给程序的命令行参数,当前为空,表示没有额外的命令行参数。
"stopAtEntry": false, // 是否在程序入口处停止(即 main 函数)。如果设置为 `true`,程序会在启动时暂停在主函数的入口处,便于进行调试。此处为 `false`,表示不会暂停在入口。
"cwd": "${workspaceFolder}", // 程序运行时的当前工作目录。`${workspaceFolder}` 变量指代工作空间的根目录。此配置表示程序会在工作空间的根目录下运行。
"environment": [], // 启动程序时传递给程序的环境变量。当前为空,意味着不会设置任何自定义的环境变量。
"externalConsole": false, // 是否在外部控制台中启动程序。`false` 表示不使用外部控制台,调试信息将在内置的终端窗口中显示。如果设置为 `true`,则会在一个新的控制台窗口中启动程序。
"MIMode": "gdb", // 选择使用的调试协议。`gdb` 表示使用 GNU 调试器(GDB)进行调试。
"miDebuggerPath": "/usr/bin/gdb", // GDB 调试器的路径。这里指定了 GDB 的路径,通常是在 Linux 系统中 GDB 的安装路径。
"setupCommands": [ // 调试会话开始时要执行的 GDB 命令列表。
{
"description": "Enable pretty-printing for gdb", // 设置命令的描述,通常是对该命令的解释,显示在调试面板中。
"text": "-enable-pretty-printing", // GDB 命令,启用漂亮打印(Pretty-Printing)。这会使 GDB 在打印 C++ STL 容器(如 `std::vector`、`std::map` 等)时,显示更易于理解的格式。
"ignoreFailures": true // 如果此命令失败,也不会中断调试会话。通常用于非关键性设置命令,确保不会因小问题而中止调试。
}
] // 设置调试会话启动时需要执行的所有命令(在这里只有一个命令)。
}
]
}
最后注意一点,在我们使用gcc或g++编译链接的时候,我们必须要加上-g参数,不然调试就不到断点了。
gcc -g -o main main.c
完成了,打上你的断点,按F5试试,是不是到断点了,再按安F10 ,这跟visual studio是不是没什么区别了,搞定。