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远程调试的资料请关注脚本之家其它相关文章!

相关文章

  • Golang上下文Context的常见应用场景

    Golang上下文Context的常见应用场景

    Golang context主要用于定义超时取消,取消后续操作,在不同操作中传递值。本文通过简单易懂的示例进行说明,感兴趣的可以了解一下
    2023-04-04
  • Go语言error的设计理念及背景演化详解

    Go语言error的设计理念及背景演化详解

    这篇文章主要为大家介绍了Go语言error的设计理念及背景演化详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • golang 执行命令行的实现

    golang 执行命令行的实现

    本文主要介绍了golang 执行命令行的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Go第三方库faker假数据生成器

    Go第三方库faker假数据生成器

    bxcodec/faker是Go语言中用于生成假数据的第三方库,适用于开发过程中填充数据库和创建测试数据,它支持生成各种类型的假数据,本文就来介绍一下如何使用,感兴趣的可以了解一下
    2026-02-02
  • GO语言类型查询类型断言示例解析

    GO语言类型查询类型断言示例解析

    这篇文章主要为大家介绍了GO语言类型判断及类型断言,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 简单对比一下 C语言 与 Go语言

    简单对比一下 C语言 与 Go语言

    这篇文章主要介绍了简单对比一下 C语言 与 Go语言的相关资料,需要的朋友可以参考下
    2023-08-08
  • Go 中 slice 的 In 功能实现探索

    Go 中 slice 的 In 功能实现探索

    这篇文章主要介绍了Go 中 slice 的 In 功能实现探索,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 在Go语言开发中实现高性能的分布式日志收集的方法

    在Go语言开发中实现高性能的分布式日志收集的方法

    本文介绍了在Go语言开发中实现高性能分布式日志收集的关键步骤和考虑因素,包括日志生成与采集、日志传输、日志收集器的高性能网络I/O、日志存储与分析、监控与告警系统、扩展性与可维护性等方面,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01
  • Golang语言如何高效拼接字符串详解

    Golang语言如何高效拼接字符串详解

    最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现,下面这篇文章主要给大家介绍了关于Golang语言如何高效拼接字符串的相关资料,需要的朋友可以参考下
    2021-11-11
  • Golang并发之RWMutex的用法详解

    Golang并发之RWMutex的用法详解

    在 Go 语言中,RWMutex 是一种读写互斥锁的实现,它提供了一种简单有效的方式来管理对共享资源的并发访问。本文就来和大家详细聊聊RWMutex的用法吧
    2023-04-04

最新评论