解决解决VScode配置远程调试配置远程调试Linux程序的问题程序的问题
下面看下VScode远程调试Linux程序的问题,具体内容如下,一起看看吧!
最近在Linux上调程序,但是gdb使用属于入门阶段,主要是没有图形化界面直观。在网上查找了有两个方案可选,一个是通过
VisualStudio2019的远程调试功能,因为最近一直在用VScode,所以没有试,之后有时间了可以试一下。另一个方案就是通过VScode的
Remote Development插件(微软官方提供的)进行远程调试。本文介绍下这个方案。
虽然网上也有其他的文章进行介绍,但是都是写的成功的情况,没有写出来过程遇到的问题,而且有些地方不太清楚。所以我觉得自己写一
个。另外请大家注意的是,这篇文档介绍的是远程调试,并不介绍远程编译这篇文档介绍的是远程调试,并不介绍远程编译,远程调试VScode也是支持的,但是我目前不需要,后续如果需
要再做配置,而且我的项目需要使用cmake及make进行编译,并不是直接用g++编译,所以也没有开始配置。
VScode的远程调试是利用gdbserver的机制进行的。大体原理是通过在Windows上或者其他图形化系统上的VScode,使用Remote
Development插件进行ssh连接到远程Linux上,然后通过gdbserver提供的连接进行远程调试。下面开始介绍具体配置方式。
需要的软件及插件需要的软件及插件
首先肯定需要安装gdb和gdbserver,大家根据自己远程系统的类别进行安装就行了。我用的Ubuntu,默认已经安装了。命令如下:
sudo apt install gdb
sudo apt install gdbserver
其次需要安装VScode的Remote Development插件,官方的C/C++插件。对于这个C/C++插件等远程连接到Linux上之后,还需要安装到远程
Linux上。可以看我下面的截图,在插件的卸载按钮旁边有个“已在SSH:x.x.x.x上启用扩展”,这是已经安装过的。后面到连接成功后介绍安装
方法。
远程连接远程连接
在安装了Remote Development插件后,就可以远程连接Linux了,ssh的连接方式有两种,一种是账户密码。还有一种是公私钥连接。这里推
荐使用公私钥连接,因为后面远程调试过程会多个地方连接,需要多次输入密码比较麻烦,使用公私钥的话只需要配置一次就可以了,非常
方便。仍然选择账户密码连接的可以跳过此处。ssh远程配置方法比较简单,但是在Windows上有个大问题。
首先在远程Linux上生成公私钥对:
# 执行下面命令,然后根据提示生成公私钥对。
ssh-keygen -t rsa
# 公钥直接在生成路径中保存,然后转存为authorized_keys
# 存储到用户的.ssh目录中,一般在生成的时候,默认路径就是用户的.ssh目录
# 假设生成的公钥是 "vscode_rsa.pub",最后注意权限设置,默认不需要改。
cat /home/user/.ssh/vscode_rsa.pub >> /home/user/.ssh/authorized_keys
chmod 644 /root/.ssh/authorized_keys
# 私钥下载到Windows机器里
# 假设路径是 "D:/.ssh/vscode_rsa"
到这里都是没有问题的。现在需要在VScode中配置连接了。
安装完Remote Development插件后,在VScode最左边有个远程资源管理器图标,如下图所示,然后选择SSH Targets,点击加号,按照
user@ip的格式添加,然后根据提示会看到远程连接的配置文件。或者直接在下面界面上加号旁边的齿轮,直接打开配置文件,按照下面的格
式添加,在IdentityFile后面添加私钥的路径:
评论0