Below you will find pages that utilize the taxonomy term “dlv”
July 27, 2023
Goland+dlv远程调试
环境
远程服务器(Linux):192.168.245.137
本地(macOS):GoLand
目的 远程调试就是使用使用本地 IDE 来调试远程服务器上的服务。本地打断点,调用远程服务的接口。本地就会停在断点。
为什么需要远程调试呢?主要有以下几点原因:
运行环境:有时候本机不具备调试环境,如开发的程序依赖太多组件,而这些组件在当前机器并不被支持 性能:一般远程服务器的配置都比较高,编译速度也比较快。而开发机器的配置相对要低一些,每次修改程序都要重新编译,非常的消耗时间。 硬盘空间:编译时产生大量的中间临时文件,多达10个G左右,如果本机硬盘空间不足的话,则根本就没有办法进行本地调试 我这里用的系统是macOS,硬盘只有128G大小,硬盘空间非常的紧张,vmware虚拟机占用了30个G, 在虚拟机里编译时发现期间产生的临时文件达到6个G,硬盘空间已经不远远不够,所以选择使用远程调试这种方式。
这些调试方式对于k8s 开发者来讲应该比较常见,如 调试 kube-apiserver 组件。
安装 dlv(远程) 首先我们在远程服务器安装 Golang 环境 和 dlv 命令。
这里默认已经安装好了 Golang 环境,版本为1.20,如果没有安装的话,则需要先安装一下,参考 https://go.dev
安装 dlv 命令参考 https://github.com/go-delve/delve/tree/master/Documentation/installation
# go install github.com/go-delve/delve/cmd/dlv@latest 查看一下 dlv 的用法
# dlv -h Delve is a source level debugger for Go programs. Delve enables you to interact with your program by controlling the execution of the process, evaluating variables, and providing information of thread / goroutine state, CPU register state and more.