Goland使用delve进行远程调试的详细教程

 更新时间:2024年08月15日 09:51:38   作者:拧螺丝专业户  
网上给出的使用delve进行远程调试,都需要先在本地交叉编译或者在远程主机上编译出可运行的程序,然后再用delve在远程启动程序,本教程会将上面的步骤简化为只需要两步,1,在远程运行程序2,在本地启动调试,需要的朋友可以参考下

引言

网上给出的使用delve进行远程调试,都需要先在本地交叉编译或者在远程主机上编译出可运行的程序,然后再用delve在远程启动程序,最后要在goland中配remote debug,然后启动remote debug连接远程的delve进行调试。

本教程会将上面的步骤简化为只需要两步,(1)在远程运行程序(2)在本地启动调试。

调试的效率和方便程度都会很大提高。

一、安装软件

(1)本地安装go 1.22.2 和goland 2023.3.7

这步骤就省略了,默认已经安装了。

(2)远程主机上安装 delve 最新版 和go 1.22.5

安装go的方法可以参考官网https://go.dev/doc/install给出的教程。

安装delve的最新版本使用下面的命令:

$ go install github.com/go-delve/delve/cmd/dlv@latest

二、本地goland配置run target

在Run -> Manage Targets中增加新的运行目标机器。

在这里插入图片描述

在这里插入图片描述

配置源文件目录和编译后文件的输出目录。

在这里插入图片描述

在运行配置配置里面设置运行target为上述配置的target。

在这里插入图片描述

在这里插入图片描述

设置的编译参数为:-o PlatformGateway -gcflags "all=-N -l"

接下来要在Before launch中配置启动远程主机上的dlv。

在这里插入图片描述

在这里插入图片描述

再次点击加号增加远程外部工具运行。

在这里插入图片描述

在这里插入图片描述

给dlv传递的参数为:--listen=:2345 --headless=true --api-version=2 --accept-multiclient exec PlatformGateway

最后的PlatformGateway是输出文件的名称,在配置go tools argiments时指定的。

三、配置远程debug

点击Run -> Edit Configurations

在这里插入图片描述

增加远程调试选项,之前给出的配置参数也是从这个页面来的。

在这里插入图片描述

四、进行远程调试

1、启动远程dlv,并运行目标程序。选择图示中的选项,然后点击右侧的三角运行按钮。

在这里插入图片描述

2、观察运行窗口出现如下提示。

在这里插入图片描述

3、在程序中打断点。

4、启动远程debug。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以看到程序已经在断点上停住了。

五、总结

通过本文的设置,进行远程调试的时候只需要点击启动运行按钮,然后再点击debug按钮,就可以进行远程调试了,比网上大多数的教程都要便捷和方面,可以提高调试的效率和体验。

以上就是Goland使用delve进行远程调试的详细教程的详细内容,更多关于Goland delve远程调试的资料请关注脚本之家其它相关文章!

相关文章

  • go语言实现并发网络爬虫的示例代码

    go语言实现并发网络爬虫的示例代码

    本文主要介绍了go语言实现并发网络爬虫的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • golang string、int、int64 float 互相转换方式

    golang string、int、int64 float 互相转换方式

    这篇文章主要介绍了golang string、int、int64 float 互相转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 分布式架构在Go语言网站的应用

    分布式架构在Go语言网站的应用

    分布式架构是目前应对高流量、高并发的重要解决方案,分布式架构的核心思想是分而治之,将单台服务器的资源划分为多台服务器进行协同完成,分布式架构应用于Go语言网站中既能提升服务速度,又能降低了服务器宕机的风险
    2024-01-01
  • golang通过mysql语句实现分页查询

    golang通过mysql语句实现分页查询

    这篇文章主要介绍了golang通过mysql语句实现分页查询,文章内容介绍详细,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • goland中npm无法使用的问题及解决

    goland中npm无法使用的问题及解决

    这篇文章主要介绍了goland中npm无法使用的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • go语言中json数据的读取和写出操作

    go语言中json数据的读取和写出操作

    这篇文章主要介绍了go语言中json数据的读取和写出操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 如何在Golang中运行JavaScript

    如何在Golang中运行JavaScript

    最近写一个程序,接口返回的数据是js格式的,需要通过golang来解析js,所以下面这篇文章主要给大家介绍了关于如何在Golang中运行JavaScript的相关资料,需要的朋友可以参考下
    2022-01-01
  • Go语言标准输入输出库的基本使用教程

    Go语言标准输入输出库的基本使用教程

    输入输出在任何一门语言中都必须提供的一个功能,下面这篇文章主要给大家介绍了关于Go语言标准输入输出库的基本使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • 解决Golang并发工具Singleflight的问题

    解决Golang并发工具Singleflight的问题

    前段时间在一个项目里使用到了分布式锁进行共享资源的访问限制,后来了解到Golang里还能够使用singleflight对共享资源的访问做限制,于是利用空余时间了解,将知识沉淀下来,并做分享
    2022-05-05
  • Golang实现自己的Redis(TCP篇)实例探究

    Golang实现自己的Redis(TCP篇)实例探究

    这篇文章主要介绍了Golang实现自己的Redis(TCP篇)实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论