当前位置: 首页 > news >正文

内网环境安装dlv,本地远程调试go

背景:内网环境(服务器)下安装dlv,本地通过dlv调试编译后的go代码。

可以配合观看: 【dlv远程调试-哔哩哔哩】 https://b23.tv/NqPZ5q9

内网安装dlv步骤

1、dlv安装: (我额服务器和内网的go都是1.21以上)

# 先在有网络的环境下(去linux机器)
git clone https://github.com/derekparker/delve.git
cd delve/cmd/dlv/
go build
# 编译好了有一个二进制
# 然后打包整个delve为压缩包
tar -czvf delve.tar.gz delve

将压缩包上传至服务器

tar -xzvf delve.tar.gz 
cd delve
go install -v ./cmd/dlv
# 安装好了查看版本; dlv 会在/root/go/bin/dlv
/root/go/bin/dlv version
ln -s /root/go/bin/dlv /bin/dlv

2、调试

编译的时候指定一些参数

go build -gcflags "all=-N -l" -o myapp
  • -N:禁用优化(即关闭优化器)。
  • -l:禁用内联优化(即关闭内联函数优化)。

使用 go build -gcflags "all=-N -l" 编译 Go 程序时,默认情况下,Go 会生成一个与源代码文件同名的可执行文件。例如,如果你的 Go 源文件是 main.go,编译后会生成一个名为 main 的可执行文件(在 Linux/macOS 上),或者 main.exe(在 Windows 上)。

dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec 编译的二进制

参数解释

  • --listen=:2345:这表示调试服务器将监听本地端口 2345,等待外部调试客户端连接。通常,调试客户端通过这个端口连接到调试服务器。

  • --headless=true:这是告诉 dlv 以无头模式(headless mode)运行。无头模式意味着不启动图形化的调试界面,而是通过命令行或远程工具进行调试。

  • --api-version=2:这是指定 dlv 使用 API 版本 2。API 版本 2 提供了更多功能和支持,用于更高版本的 dlv 和调试器之间的兼容。

  • --accept-multiclient:允许多个客户端连接到同一个调试会话。通常,如果不加这个选项,dlv 只允许一个客户端连接。

  • exec 编译的二进制exec 后跟的是二进制文件的路径。这个二进制文件是已经通过 go build 或其他构建工具编译后的程序。

 然后打开ide的调试工具

 然后正常调试即可

 

相关文章:

  • 2.12[A]distribute sys
  • 豆包与 Trae 编程 IDE:开启智能编程新时代
  • 8.C语言分支结构详解:掌握if语句与关系操作符
  • 算法专题(五):模拟
  • Maven核心包:maven-resolver-api
  • 海鲜水产行业wordpress外贸主题
  • linux grub文件丢失
  • C语言之共用体
  • 腾讯混元大模型简介
  • LVPECL(Low Voltage Positive Emitter-Coupled Logic)电平详解
  • Wireshark:在 显示过滤器中“加入条件”过滤后,出现其他类型的数据包,为什么?
  • 在Android中,子线程可以更新UI吗
  • 刷题练习笔记
  • Leetcode-1278.Palindrome Partitioning IV [C++][Java]
  • Word 小黑第18套
  • 《Operating System Concepts》阅读笔记:p309-p330
  • 开启云服务器ubuntu22.04的远程桌面,支持Windows远程连接 - 开启XRDP支持
  • TypeScript装饰器
  • An effective algorithm for peptide de novo sequencing from MS/MS spectra
  • 二分算法刷题
  • 汕头个人建站模板/厦门网站seo
  • 网站开发语言排名/百度搜索引擎的原理
  • wordpress建立数据库时出错/seo竞价培训
  • 怎么再贴吧给自己的网站做宣传/济南网络推广公司电话
  • 怎么做网站演示/外包公司到底值不值得去
  • 建网站需要买些什么/百度竞价排名是什么意思