当前位置: 首页 > 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的调试工具

 然后正常调试即可

 


文章转载自:
http://allobar.wkuuf.cn
http://bookmobile.wkuuf.cn
http://cardinal.wkuuf.cn
http://alarming.wkuuf.cn
http://brilliance.wkuuf.cn
http://blahs.wkuuf.cn
http://affright.wkuuf.cn
http://bouillon.wkuuf.cn
http://arginine.wkuuf.cn
http://antispeculation.wkuuf.cn
http://beltline.wkuuf.cn
http://bitter.wkuuf.cn
http://capulet.wkuuf.cn
http://caviler.wkuuf.cn
http://cangue.wkuuf.cn
http://antitrinitarian.wkuuf.cn
http://cheero.wkuuf.cn
http://capsheaf.wkuuf.cn
http://appellative.wkuuf.cn
http://candidly.wkuuf.cn
http://admirer.wkuuf.cn
http://cacographer.wkuuf.cn
http://busybody.wkuuf.cn
http://barratrous.wkuuf.cn
http://absinthin.wkuuf.cn
http://boltoperated.wkuuf.cn
http://biconvex.wkuuf.cn
http://adullamite.wkuuf.cn
http://caboshed.wkuuf.cn
http://broking.wkuuf.cn
http://www.dtcms.com/a/72475.html

相关文章:

  • 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
  • 二分算法刷题
  • 【NLP】 4. NLP项目流程与上下文窗口大小参数的影响
  • llama-factory笔记
  • python二级复习(1)
  • 编程题-第k个语法符号(中等)
  • 在react当中利用IntersectionObserve实现下拉加载数据
  • 使用生成对抗网络(GAN)进行人脸老化生成的Python示例
  • Conda 虚拟环境创建:加不加 Python 版本的深度剖析
  • Python(最新版)集成开发环境PyCharm下载安装详细教程
  • 开源WAF雷池本地化部署与远程查看网站安全防护的详细操作指南
  • 深度解析螺栓连接计算题:原理、计算与应用