GO远程构建并调试

GO远程调试

之前写C++,一直习惯了本地IDE+Remote CMake/GDB编译调试的模式。

因为6.824课程需要用GO,好像没有特别好的支持。记录一下如何配置调试的。


IDE: Goland

操作系统:Windows

远程服务器:Ubuntu

  1. 首先配置SSH,让其可以连接到服务器
  1. 配置部署。选择SFTP。在映射中选择上传的路径。

这样就实现了本地和服务器文件的同步

  1. 在服务器上安装delve

因为是ubuntu,我是直接sudo apt install delve就能进行安装。

但是后面发现直接这样安装的话版本有冲突

然后使用dlv version进行安装检查

使用源码进行安装:

bash 复制代码
cd ~

git clone git@github.com:go-delve/delve.git

cd delve

go install github.com/go-delve/delve/cmd/dlv

这个时候在你的go目录下,(比如我的是~/go/bin)会出现名字叫dlv的可执行文件。

然后将该路径添加到环境变量就行了。

此时dlv version可以正确显示版本

复制代码
 dlv version
Delve Debugger
Version: 1.21.0
Build: $Id: fec0d226b2c2cce1567d5f59169660cf61dc1efe $
  1. 编写测试文件
GO 复制代码
package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println("Hello Go")
    showOS()
}

func showOS() {
    os := runtime.GOOS
    fmt.Println("当前操作系统是:", os)
}

测试代码说明:创建目录test,并且创建go.mod文件。


  1. 配置Go Remote

然后使用终端进入你的服务器代码路径,比如我的是~/projects/6.824/test/hello。

按照提示运行

dlv debug --headless --listen=:2345 --api-version=2 --accept-multiclient

  1. 进行运行配置

这里运行于选择之前部署的服务器。然后在远程目标上构建

  1. 进行调试

可以看到,此时已经可以在服务器上构建并单步调试代码了

相关推荐
2601_966949653 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨5 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪5 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
Flynt5 小时前
我把微信运动的排行榜和定点推送复刻了一遍:100万次步数更新只要4秒,坑在别处
redis·后端·性能优化
程序员清风6 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
2601_962885727 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
_孤傲_7 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
Wang's Blog8 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
下一站春风里8 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
IT_陈寒9 小时前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端