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

内网环境安装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://www.kler.cn/a/589672.html

相关文章:

  • 自动化实施的常用元件有哪几种?
  • hadoop-配置安装jdk
  • Linux目录结构以及文件操作
  • IDEA的相关配置
  • 孤儿进程与僵尸进程:Linux进程管理中的“隐形杀手”与“无主孤儿”
  • 蓝桥杯 之 数学规律求解
  • React:React主流组件库对比
  • 【数据库】Data Model(数据模型)数据模型分析
  • AGI大模型(8):提示词的安全与防护
  • Redis 持久化机制:AOF 与 RDB 详解
  • 使用Ollama本地部署DeepSeek
  • (hash表+vector 数位和相等数对的最大和)leetcode 2342
  • CUDA多线程
  • EB-Cable许可证的常见问题及解决方案
  • 贪心算法(7)(java) 分发饼干
  • C#语法基础总结
  • 蓝桥杯省赛(2024)
  • 如何创建HTML自定义元素:使用 Web Component 的最佳实践
  • 从零精通机器学习:线性回归入门
  • 书摘 ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离