目录
- 背景
- 软件版本
- 环境搭建
- 安装`Golang`环境
- 安装`dlv`环境
- 启动远程环境
- Goland 连接远程环境
- 参考
背景
最近在做 Operator 的二次开发,开发语言是Golang。Operator 开发时候需要用到k8s集群,遗憾的是k8s编排的容器网络与本地网络不通,无法直接进行debug。k8s 调整网络的方式比较麻烦,曲线救国在 k8s node 上安装Golang环境,本地进行远程debug。
Golang 远程debug 需要借助dlv 工具。
软件版本
Golang 1.19.2dlv 1.9.1Goland 2020.3.5
环境搭建
安装Golang环境
wget https://golang.google.cn/dl/go1.19.2.linux-amd64.tar.gz
tar -C /usr/local -zxvf go1.19.2.linux-amd64.tar.gz
vi ~/.bash_profile
#在最下面添加
export GOROOT=/usr/local/go
# export GOPATH=/home/go ## GOPATH 可以不加
export PATH=$PATH:$GOROOT/bin #:$GOPATH/bin
export GOPROXY="https://goproxy.io"
source ~/.bash_profile
安装dlv环境
# 这里采用的是git clone 的方式,也可离线下载release版本。
# 任意目录
git clone https://github.com/derekparker/delve.git
cd delve/cmd/dlv/
go build
go install
# 可执行程序为 `cmd/dlv/dlv`
# 可以将其拷贝到 `/usr/bin`中, 也可以创建软连接的方式
启动远程环境
# 进入项目目录
dlv debug --headless --listen=:2345 --api-version=2
# 此时控制台会阻塞
# 这个命令忘记也没关系,goland 远程连接的地方有提示
Goland 连接远程环境
从Templates 中创建一个 Go Remote 启动即可。

注意:
Goland中的代码要跟远程debug的代码一致,否则调试结果不准确,通过git进行代码同步是个不错的选择。dlv启动参数--accept-muticlient可不加,加上可能会有其他问题。
参考
- goland远程调试
- Go Lang远程调试 with Goland
- Go以及调试工具dlv安装及使用
- dlv官方仓库
- Golang 官方网站



![[附源码]Python计算机毕业设计Django毕业生就业管理系统](https://img-blog.csdnimg.cn/e1be408fe4374e2bade3df335d1b8e93.png)










![【深入理解C++】new/delete和new[]/delete[]探秘](https://img-blog.csdnimg.cn/d6c4f322e9814786af6975c78d1a2e06.png#pic_center)




