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. 进行调试

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

相关推荐
wjs20243 分钟前
jEasyUI 树形网格动态加载详解
开发语言
用户8356290780516 分钟前
Python 操作 Word 文档节与页面设置
后端·python
xlq2232224 分钟前
41.线程封装与互斥
linux·开发语言
酒後少女的夢30 分钟前
设计模式教程
后端·架构
凌览32 分钟前
别再手搓 Skill 了,用这个工具 5 分钟搞定
前端·后端
不爱吃炸鸡柳34 分钟前
算法复杂度从入门到精通:时间与空间复杂度全解析
开发语言·c++·算法
游乐码43 分钟前
c#lambad表达式
开发语言·c#
weixin_408099671 小时前
python请求文字识别ocr api
开发语言·人工智能·后端·python·ocr·api·ocr文字识别
weixin_408099671 小时前
【组合实战】OCR + 图片去水印 API:自动清洗图片再识别文字(完整方案 + 代码示例)
图像处理·后端·ocr·api·文字识别·去水印·ocr识别优化