VSCode大法之远程调试开发

VSCode 远程开发关键插件

在VSCode的Extensions中搜索远程开发必备插件 remote development,该插件包括几种不错的插件,比如Remote-SSH,Remote-Containers,Remote-WSL等,其中本章节介绍的主要是Remote-SSH相关操作。(不骗大家,其余几种我暂时还没有好好使用过,若以后使用,则后续补充吧。)


一. 远程操作相关配置

如下图所示,将remote development插件安装好之后,在选项栏中会多一项,该项目主要是远程登陆的涉及的账户和浏览记录等。比如我的账户apaki,在主目录下有一个c文件夹,用于远程开发我的项目。(@o@)
在这里插入图片描述
使用Ctrl+Shift+P,输入Remote-SSH:Add New SSH Host,来添加一个新的远程账户。(当然了,也可以直接点击上图中的"加号"来添加一个新的远程账户)
在这里插入图片描述
随后添加配置文件config,目录可以直接按照软件默认目录即可。一般都是在~/.ssh/config,该文件的相关配置如下:

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host apaki
    HostName xxx.xxx.xxx.xxx (这里是您的远程账户的IP)
    User apaki

当然了,SSH默认port是22,您也可以通过该文件进行自己配置,此处就不多说了。


二. 远程登陆

经过上述配置之后,您就可以通过该账户进行登陆了。在登陆成功之后,您使用open打开的文件夹,则是远程文件夹,如下图所示。 在这里插入图片描述
随后就可以开开心心的进行远程开发了。


三.常见问题

  1. 提示说远程主机不支持SSH,好吧。若是遇到这种情况则需要您现在远程主机上配置SSH相关服务。配置方式网上可以搜到很多,此处就不再赘述了。若懒的搜索,也可以直接查看如下链接的教程。
    https://blog.csdn.net/wgc0802402/article/details/91046196
  2. 提示说无法建立,或者path不正确等。则可能是如下原因,一个是您的电脑上没有安装过ssh相关软件,比如git,SecureCRT等。(我电脑两者都有,所有不用重复安装了),当然了其他的支持ssh服务的软件也可以。
    若您有相关软件但是依然提示错误,则可以通过everything等软件,搜索一下您电脑中是否存在ssh.exe文件,将该文件路径添加到如下的settting中即可。
    // 如下的配置在 Ctrl+Shift+P,输入Remote-SSH:Setting中。
    在这里插入图片描述
  3. 一般情况下都要把setting中的如下选项勾选一下
    在这里插入图片描述
  4. 在插件管理那个选项中,可以看出。安装完remote development之后,插件管理被分成了2个部分。下面的SSH那个,表示的是远程可能需要用到的插件,比如python插件,若远程也安装之后,则可以远程进行调试。若本地有该插件,但是远程中没有,则远程操作只能通过命令行的方式运行,而无法单步调试。(本人远程主要用于开发c和python,因此安装了如下两个插件)
    在这里插入图片描述

VSCode开发调试工程配置

一. python开发配置

这个比较简单,就不多说了。安装了python插件之后,选择好相关的python解析器即可。

二. C开发tasks工程配置

在vscode自带的工程编译和调试方式,涉及如下两个文件,一个是tasks.json,另一个是launch.json。
其中tasks主要是用于代码build,gcc编译添加一些关键参数,以及多文件工程中,添加相关源文件使用。(具体方式不做声明,vsc默认生成的配置文件,我估计开发人员看几眼基本就知道怎么修改了)
而launch文件主要是配置调试,比如gdb等,还有stopAtEntry,以及很关键的一个参数:preLaunchTask(该参数要和tasks中的label相对应,否则在调试之前无法进行编译等操作),以及program参数(最终运行的程序路径和名称)

三. C开发makefile工程配置(这个是我常用的方式)

为什么要单独分出这么一栏来专门说明呢,是因为一般开发的时候工程管理直接使用makefile文件了,因此此种方式比较常用。不依赖于某个编译器。
话不多说了,直接上图

// 这个是我tasks.json中的配置,配置好之后,则可以通过软件的选项:
// 终端->运行任务 中,选择build和clean了。不用每次都去输入make clean等命令了
{
    "tasks": [
        {
            "type": "shell",
            "label": "build",
            "command": "/usr/bin/make",
            "args": [
                "-f",
                "makefile"
            ],
        },
        {
            "type": "shell",
            "label": "clean",
            "command": "/usr/bin/make",
            "args": [
                "clean"
            ],
        }
    ],
    "version": "2.0.0"
}
// 关于launch.json文件,别的我就不多说了。
// 主要介绍一个参数,preLaunchTask,对应的值在tasks文件中,也即build
// 因为上述的tasks中的label也被我修改过,并非默认的。
// 因此该launch文件也需要做相应的修改,否则可能在(Ctrl+)F5之前无法进行
// 自动编译
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/demo",
            "args": [
                "main.c"
            ],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

对比

之前我采用的方式是:

  1. linux客户端直接安装vscode,进行操作。(好吧,因为之前使用的VMWare,安装vscode偶尔会很卡)
  2. git本地修改好代码之后,上传到远程,随后再使用SecureCRT等工具在远程客户端继续编译。(当然了,这样比较慢,不过有git log)
  3. 在linux系统中直接使用vim开发,当然了,我水平有限,vim也只能但文件操作。多个文件的工程,我就用的不是那么顺手了。

相对于以上方式:VSCode Remote Development 我认为有以下特点:

  • 优点
    • 远程代码直接同步,并且vscode自带终端,方便随时修改查看等
    • 远程调试也很方便,结果直接在终端输出
    • 对于windows和linux交叉编译的情况,更加方便了。不用一边写代码,一边去查找相关函数了。因为vscode包含相关头文件之后,可以自动填充呀。(&.&)
  • 缺点
    • 对于网络有一定的要求(>o<)

当然了,若您有更好的方法,也可以提出来互相学习一下。嘿嘿

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值