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

GO 学习笔记之四 工具(1)远程调试工具 dlv

一、背景

    go 开发的程序需要编译成二进制放在环境上之后,通过 ./二进制文件名称 (linux服务器上的启动方式) 进行启动。 当程序允许过程中,如果发现有问题,此时希望能够 向Java 一样可以通过工具进行代码远程调试,这样可以更快发现问题。此时可以使用 dlv 工具。

二、安装

1、手动安装

     当需要调试的服务器是离线的情况下,此时我们希望能够进行手动安装

1.1  下载源码 (Releases · go-delve/delve)

由于我的go版本使用的是 1.24.2, 所以这里也下载了 1.24.2 对应的源码

1.2 编译源码

  • 将下载的 delve-1.24.2.tar.gz  上传到服务器上(本文章放在了 /opt/go/tool  下,go 安装在了 /opt/go/go 下)
  • tar -zxvf delve-1.24.2.tar.gz 
  • cd delve-1.24.2
  • go build github.com/go-delve/delve/cmd/dlv   在当前目录下生成了 dlv文件

1.3 安装

  • 将 dlv 文件移动动 go path 目录下。  (\cp dlv /opt/go/go/bin)
  • dlv version   查看版本

2、利用 go 环境进行安装

  环境中已经安装上了go,且该环境可以连网络 或者 go env 中的代理可以连接上,此时可以利用go 直接安装 dlv

2.1 

 

三、配置远程调试环境

1、在开发工具 Visual Studio Code 中配置 dlv

  • 在开发工具中打开你的 go 工程
  • 打开调试模式菜单下的配置 。。。  左侧点击“有爬虫的图标”,点击上侧的 的下拉图标,可以看到 一些菜单, 点击 “添加配置(xxxx)”,其中 xxxx 是你的go程序目录名称

  • 右侧出现 launch.json文件

2、配置 launch.json

   在文件中添加如下配置内容

  • name:调试名称
  • type :默认 go
  • request:attach
  • mode:remote
  • remotePath:填写远程服务器上 go 二进制程序 源码所在路径
  • port:远程服务器上开启的 dlv 调试端口
  • host:远程服务器的IP
  • trace:verbose
  • showLog:true     是否打开日志

3、将go 二进制程序的源码放到 远程服务器上

四、启动远程调试

1、远程服务器 开启 dlv 调试进程

  • 远程到服务器 go 二进制源码所在目录下
  • dlv debug --headless --listen=:2366 --api-version=2 --log

可以看到 启动在 2366端口上,且go二进制程序已经运行

2、启动 Visual Studio 上的 远程调试

 

 

五、用法深入研究

 

六、常见问题

1、启动go文件不存在于程序源码根路径下且程序依赖C++库。

1.1  具体场景描述

main.go文件不存在,程序入口go文件不在源代码根目录下,而是在其它子目录下;代码中存在加载C++库文件的逻辑。目录结构如下:

image

 1.2 问题

此情况下,通过dlv调式(在源码根路径下 -- go.mod 所在目录, 执行dlv 命令: dlv debug --listen=:2366 --headless=true --api-version=2 --log  ./core/start/start.go),遇到如下问题:

1)

 

 

 

 

1.3 解决方案

 

http://www.sczhlp.com/news/43652/

相关文章:

  • 使用 LLM + MCP 在过早客论坛冲浪‍♀️
  • 个人网站可以做论坛吗?广州百度推广优化排名
  • 做暧暧暧昧网站短视频seo询盘获客系统软件
  • 网站建设课程设计百度账号是什么
  • led网站建设官网优化哪家专业
  • Carwith手车文件传输
  • 杂项
  • Git 提交代码 和 推送到远程仓库详解
  • [Procedure #16] CF2108F Fallen Towers
  • 组合部分总结
  • 个人作品链接怎么做莫停之科技windows优化大师
  • 招商加盟网官网怎么优化百度关键词
  • 做社区生意的网站西点培训前十名学校
  • 企业公司网站制作百度关键词排名推广话术
  • 注销建设工程规划许可证在哪个网站搜索词排行榜
  • 深圳十大网站建设女孩短期技能培训班
  • vscode终端无法执行npm命令的问题
  • 建设网站用哪种语言农夫山泉软文300字
  • 斯特林数
  • JAVA中哪些集合允许key为null
  • 东莞营销商城网站建设白杨seo课程
  • 海汇100做网站可靠吗站长综合查询工具
  • 盗版小说网站怎么赚钱产品营销推广
  • 网站建设广州天河区百度写作助手
  • zedu小语种网站建设百度搜索排名购买
  • 上海十大建筑设计公司seo研究中心qq群
  • 索菲亚全屋定制官方网站重庆seo顾问服务
  • 耒阳网站建设百度推广400客服电话
  • 如何查看网站域名信息成功的软文营销案例
  • 竭诚网络网站建设开发网站seo内容优化