Below you will find pages that utilize the taxonomy term “Dlv”
July 27, 2023
Goland+dlv远程调试
"\u003cp\u003e环境\u003c/p\u003e\n\u003cp\u003e远程服务器(Linux):192.168.245.137\u003c/p\u003e\n\u003cp\u003e本地(macOS):GoLand\u003c/p\u003e\n\u003ch1 id=\"目的\"\u003e目的\u003c/h1\u003e\n\u003cp\u003e远程调试就是使用使用本地 IDE 来调试远程服务器上的服务。本地打断点,调用远程服务的接口。本地就会停在断点。\u003c/p\u003e\n\u003cp\u003e为什么需要远程调试呢?主要有以下几点原因:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e运行环境:有时候本机不具备调试环境,如开发的程序依赖太多组件,而这些组件在当前机器并不被支持\u003c/li\u003e\n\u003cli\u003e性能:一般远程服务器的配置都比较高,编译速度也比较快。而开发机器的配置相对要低一些,每次修改程序都要重新编译,非常的消耗时间。\u003c/li\u003e\n\u003cli\u003e硬盘空间:编译时产生大量的中间临时文件,多达10个G左右,如果本机硬盘空间不足的话,则根本就没有办法进行本地调试\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e我这里用的系统是macOS,硬盘只有128G大小,硬盘空间非常的紧张,vmware虚拟机占用了30个G, 在虚拟机里编译时发现期间产生的临时文件达到6个G,硬盘空间已经不远远不够,所以选择使用远程调试这种方式。\u003c/p\u003e\n\u003cp\u003e这些调试方式对于k8s 开发者来讲应该比较常见,如 \u003ca href=\"https://blog.haohtml.com/archives/34454\"\u003e调试 \u003ccode\u003ekube-apiserver\u003c/code\u003e 组件\u003c/a\u003e。\u003c/p\u003e\n\u003ch1 id=\"安装-dlv远程\"\u003e安装 dlv(远程)\u003c/h1\u003e\n\u003cp\u003e首先我们在远程服务器安装 \u003ca href=\"https://go.dev\"\u003eGolang\u003c/a\u003e 环境 和 \u003ca href=\"https://github.com/go-delve/delve\"\u003edlv\u003c/a\u003e 命令。 …\u003c/p\u003e"