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

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

相关推荐
weixin_4331793311 分钟前
python - for循环,字符串,元组基础
开发语言·python
踏浪无痕16 分钟前
SQLInsight:一行依赖,自动追踪API背后的每一条SQL
后端·架构·开源
架构师沉默23 分钟前
一个很多人没想过的问题:为什么编程语言有 for,还要设计 while?
java·后端·架构
Mars酱23 分钟前
1分钟了解响应式编程 | 基本概念
java·后端·rxjava
几颗流星28 分钟前
Rust 像素级绘图入门:Pixels 库核心机制解析
后端·rust
乌日尼乐34 分钟前
【Java基础整理】封装、继承、抽象、接口和多态
java·后端
智航GIS37 分钟前
9.1 多线程入门
java·开发语言·python
我是谁的程序员38 分钟前
不用 Instruments 而在 Windows 环境下测试 iOS App
后端
qq192572302738 分钟前
QT的QML
开发语言·qt
ServBay38 分钟前
PHP 8.6 新特性预览,更简洁的语法与更严谨的类型控制
后端·php