• vscode配置golang远程开发调试环境


    1 vscode配置golang远程开发调试环境

    1.1 golang远程开发应用场景

    golang项目开发中,特别是需要跨平台的项目时,很多时候需要在远程环境下进行开发、编译、调试,比如嵌入式linux场景,我们在windows下开发好的代码,可能需要在linux环境运行,需要在此环境下编译程二进制文件,再运行,如果遇到问题,很多时候只能通过izhi来定位,如果要验证修改的代码,可能还需要先上传到linux开发环境,进行编译->运行->根据日志再定位的过程,特别繁琐,这里vscode提供了强大的远程开发/编译/断点调试等功能,这里介绍下golang的远程开发调试环境搭建方式。

    1.2 远程开发调试环境搭建

    我的vscode版本如下:
    版本

    我的vscode版本比较新,配置远程环境非常简单,步骤如下:

    1. 安装remote-ssh插件

    选择vscode左侧侧边栏extensions菜单,搜索remote-ssh插件并安装插件
    ssh插件

    插件安装完成后,会在左侧侧边栏出现remote explore菜单

    1. 添加远程目标主机

    远程目标及假设为linux系统,已经安装好go环境,并下载好最新的代码(代码目录:/home/goproj/test),并开通了ssh(以ssh地址为10.45.12.43为例),点击remote explore菜单,点击ssh targets旁边的"+"图标(addnew)来添加目标主机,如下图:

    点击添加后会选择目标主机配置参数保存文件,选择后会把目标主机ssh信息添加到配置文件,添加命令为ssh root@10.45.12.43,期间会让选择平台,我们选择linux即可。
    add

    1. 连接目标主机

    在新添加的目标主机上右键,连接主机,这里可选择在当前窗口连接,还是新打开一个vscode窗口连接,我这里选择当前窗口
    connect

    连接时会要求输入密码,我们正确的输入ssh密码即可连接成功:

    connect

    1. 打开目标主机上的go代码

    和打开本地文件一样,我们选择左侧侧边栏的explore菜单,打开远端文件夹,然后会弹出远端目标机器的目录列表,选择我们go工程所在的目录,此时还会让输入密码,输入密码即可打开远程代码目录,如果目录中已存在.code-workspace工程文件,打开此文件,右下角有openworkspace,点击即可重新以工作空间的方式打开:

    1
    2

    1. 远端机器安装go插件及工具

    因为要做远端进行调试和运行,需要在远端服务器上安装vscode安装go插件及工具集,查理直接可以在本地vscode中安装,在extensions中搜索go,额在插件下方有一行:installing in ssh:10.45.12.43,点击即可在远端目标机器安装go插件,不安装的话,打开go文件vscode也会提示安装,安装提示安装也可。
    插件安装完成之后,需要安装go的工具集,和本地一样,直接按F1,命令中输入go,选择go:install/update tools->全选->ok,进行tools安装,如果提示安装失败,需要在远端重新配置下go的代理,直接在vscode中打开terminal(此终端直接时通过ssh连接到了远端机器),输入命令:

    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    
    • 1
    • 2

    再重新安装tools

    1.3 远程debug运行配置

    这里代码时远端代码,修改代码后,如果要在本地进行远程debug调试,需要配置launch,这里我把launch配置整合到了.code-workspace,配置如下:
    test.code-workspace

    {
     "folders": [
      {
       "path": "."
      }
     ],
     "settings": {},
     "launch": {
      "version": "0.2.0",
      "configurations": [
       {
        "name": "golang",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        //当运行单个文件时{workspaceFolder}可改为{file}
        "program": "${workspaceFolder}",
        "env": {},
        "args": [
         "-pprof",
         //"-deamon"
        ]
       }
      ]
     }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    配置完成后即可直接f5运行,可断点调试,也可运行。

    由于未配置ssh免密访问,经常需要输入密码,也可在配置文件中加入公钥地址进行免密访问,这里可以自行百度。

    这里通过remote-ssh连接到远端后,其终端也是直接ssh到远端的,也可作为ssh终端,在远端执行go的相关命令

  • 相关阅读:
    DDD概念复杂难懂,实际落地如何设计代码实现模型?
    基于SSM的个人健康饮食管理小程序系统源码【包调试】
    【数据结构与算法】递归全流程详细剖析 | 详解图的深度优先遍历
    java毕业设计论文题目基于SSM实现的小区物业管理系统[包运行成功]
    lc437. 路径总和 III
    图论_3。
    JMeter与Selenium WebDriver集成的价值
    app自动化(五)POM模式框架搭建
    matplotlib库基本使用方法(一)
    Qt5开发从入门到精通——第九篇二节( Qt5 文件及磁盘处理—— 读写二进制文件)
  • 原文地址:https://blog.csdn.net/water1209/article/details/126640399