【六袆-Golang】Golang:安装与配置Delve进行Go语言Debug调试

news2025/1/20 15:39:20

安装与配置Delve进行Go语言Debug调试

      • 一、Delve简介
      • 二、win-安装Delve
      • 三、使用Delve调试Go程序[命令行的方式]
      • 四、使用Golang调试程序

Golang开发工具系列:安装与配置Delve进行Go语言Debug调试

摘要: 开发环境中安装和配置Delve,一个强大的Go语言调试工具。通过Delve,您可以更轻松地调试Go应用程序,提高开发效率。

一、Delve简介

Delve是一个开源的Go语言调试器,它提供了丰富的功能,包括设置断点、单步执行、查看变量值等。Delve支持在本地和远程调试Go程序,使得开发者能够更方便地定位和解决代码中的问题。

  • 官方地址:github.com/go-delve/delve

二、win-安装Delve

安装Delve需要确保已经安装了Go语言环境,并正确配置了GOPATH和GOROOT环境变量。接下来,按照以下步骤安装Delve:

  1. 运行以下命令安装Delve:
$ git clone https://github.com/go-delve/delve
$ cd delve
$ go install github.com/go-delve/delve/cmd/dlv
  1. 安装完成后,您可以通过运行dlv命令来验证Delve是否成功安装:
dlv version

如果显示Delve的版本信息,则表示安装成功。

三、使用Delve调试Go程序[命令行的方式]

使用Delve调试Go程序非常简单。以下是一个简单的示例,演示如何使用Delve调试一个名为main.go的Go程序:

  1. 编写一个简单的Go程序,例如:
package main

import "fmt"

func main() {
    x := 10
    y := 20
    z := add(x, y)
    fmt.Println("Result:", z)
}

func add(a, b int) int {
    return a + b
}
  1. 在终端中,导航到包含main.go文件的目录。
  2. 运行以下命令启动Delve并调试程序:
dlv debug main.go

Delve将启动并显示一个交互式命令行界面。

  1. 设置断点:在Delve命令行界面中,输入以下命令在第6行设置断点:
break main.go:6
  1. 开始调试:输入continue命令(或简写为c)开始运行程序,直到遇到断点:
continue

程序将在断点处停止执行。此时,您可以查看变量值、单步执行代码等。例如,使用print x命令查看变量x的值。要单步执行代码,请使用next命令(或简写为n)。要进入函数内部进行调试,请使用step命令(或简写为s)。要查看当前堆栈信息,请使用stack命令(或简写为bt)。此外,Delve还支持许多其他有用的命令和功能,您可以通过输入help命令查看完整的命令列表和说明。例如:要查看当前堆栈信息并打印变量值,请执行以下操作:在Delve命令行界面中依次输入以下命令:stack(查看堆栈信息)和 print z(打印变量z的值)。这些命令将帮助您更好地了解程序在断点处的状态。当然,这只是Delve功能的冰山一角。在实际开发中,您可能会发现Delve还有许多其他有用的特性和功能等待您去探索。

  1. 当您完成调试后,可以使用exit命令退出Delve。

四、使用Golang调试程序

  • 安装好的delve,进行目录文件的替换

安装好delve,默认会在设置的GOPATH下的bin目录下

在这里插入图片描述

替换

替换掉Golandch目录下的dlv.exe文件
在这个位置 GoLand 2023.3.2\plugins\go-plugin\lib\dlv\windows

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1475301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年腾讯云4核8G12M配置的轻量服务器同时支持多大访问量?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

HUAWEI 华为交换机 配置基于VLAN的MAC地址学习限制接入用户数量 配置示例

组网需求 如 图 2-15 所示,用户网络 1 通过 LSW1 与 Switch 相连, Switch 的接口为 GE0/0/1 。用户网络2通过 LSW2 与 Switch 相连, Switch 的接口为 GE0/0/2 。 GE0/0/1 、 GE0/0/2 同属于 VLAN2。为控制接入用户数,对 VLAN2 进…

Eclipse是如何创建web project项目的?

前面几篇描述先后描述了tomcat的目录结构和访问机制,以及Eclipse的项目类型和怎么调用jar包,还有java的main函数等,这些是一些基础问题,基础高清出来才更容易搞清楚后面要说的东西,也就是需求带动学习,后面…

element el-table表格内容宽度自适应,不换行,不隐藏

2024.2.27今天我学习了如何用el-table实现表格宽度的自适应,当我们动态渲染表格数据的时候,有时候因为内容太多会出现挤压换行的效果: 我们需要根据内容的最大长度设置动态的宽度,这边我在utils里面封装了一个js: //…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(八)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型,由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”(そら sora),即天空之意,以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

数据界的达克摩斯之剑----深入浅出带你理解网络爬虫(Third)

目录 网络爬虫示例 1.爬行策略 1.1 选择策略: 1.1.1 限定访问链接 1.1.2 路径检索 1.1.3 聚焦抓取 1.1.5 WEB3.0检索 1.2重新访问策略 1.3 平衡礼貌策略 1.4 并行策略 2.网络爬虫体系结构 2.1 URL一般化 接上文数据界的达克摩斯之剑----深入浅出带你理解…

【主题广范|见刊快】2024年电力电气与机械,能源工程国际会议(ICPEMEE 2024)

【主题广范|见刊快】2024年电力电气与机械,能源工程国际会议(ICPEMEE 2024) 重要信息 会议官网:http://www.icpemee.com会议地址:合肥截稿日期:2024.03.10召开日期:2024.03.20 (先投…

【C语言】学生宿舍信息管理系统

目录 项目说明 1. 数据结构设计 2. 功能实现 3. 主菜单设计 4. 文件操作 5. 系统使用 项目展示 1.主菜单功能界面 ​编辑 2.添加信息 3.查询信息 4.修改信息 5.删除信息 6.退出程序 项目完整代码 结语 在这篇博客中,我们将探讨如何使用C语言来开发…

虚拟机JVM

虚拟机 1、定义jvm 假想计算机 运行在操作系统之上 和硬件之间没有直接交互 包括 一套字节码指令、寄存器、栈、垃圾回收、堆 一个存储方法域 jvm:承担一个翻译工作,动态的将java代码编译成操作系统可以识别的机器码。 从软件层面屏蔽了不同操作系统在底层硬件与指…

备战蓝桥杯————k个一组反转单链表

k个反转单链表,顾名思义就是k个节点为一组进行反转,这是一道困难的题目,如何解答,可以在我们前面的反转链表中得到思路。 如何 K 个一组反转单链表 题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转&#xf…

四院士领衔,多位大学院校教授,3月齐聚泉城,2024发酵展即将盛装启幕!

2024济南生物发酵系列展同期举办 2024北方工业节能装备展 2024山东国际风机工业展 2024国际合成生物学产业展 2024国际生物制药与技术装备展 2024国际生化仪器与实验室装备展 2024山东国际卫生级流体、泵阀管道展 即将盛大开幕 30000平方米展示面积 500家知名企业参展…

完全分布式运行模式

完全分布式运行模式 分析:之前已经配置完成 ​ 1)准备3台客户机(关闭防火墙、静态ip、主机名称) ​ 2)安装JDK ​ 3)配置环境变量 ​ 4)安装Hadoop ​ 5)配置环境变量 ​ 6&am…

无人机飞行控制系统技术,四旋翼无人机控制系统建模技术详解

物理建模是四旋翼无人机控制系统建模的基础,主要涉及到无人机的物理特性和运动学特性。物理建模的目的是将无人机的运动与输入信号(如控制电压)之间的关系进行数学描述。 四旋翼无人直升机是具有四个输入力和六个坐标输出的欠驱动动力学旋翼…

Liunx前后端项目部署(小白也可安装)

文章目录 一、CentOS服务器的安装二、jdk安装三、Tomcat安装四、MySQL安装、五、nginX安装六、多个项目负载均衡,部署后端项目七、前端项目部署 一、CentOS服务器的安装 选择liunx,下面选择CentOS 7 ![在这里插入图片描述](https://img-blog.csdnimg.cn…

springboot之jdbc、druid、mybatis

springboot整合jdbc spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.52.3:3306/mybatis?useUnicodetrue&characterEncodingutf-8&serverTimezoneUTCusername: rootpassword: root<?xml version"1.0" encodi…

何恺明新作 l-DAE:解构扩散模型

何恺明新作 l-DAE&#xff1a;解构扩散模型 提出背景扩散模型步骤如何在不影响数据表征能力的同时简化模型&#xff1f;如何进一步推动模型向经典DAE靠拢&#xff1f;如何去除对生成任务设计的DDM中不适用于自监督学习的部分&#xff1f;如何改进DDM以专注于清晰图像表示的学习…

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯&#xff0c;遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项&#xff1f;3.7.1 当数据结构定义的是数…

希亦、大宇、德国ODI三款哪款清洁力强?无广超声波清洗机实测!

最近超声波清洗机可见到非常火爆&#xff0c;一款产品在火爆的情况下都会有不信任的声音出现&#xff0c;超声波清洗机真的可以把眼镜洗干净吗&#xff1f;就一个超声波能洗东西&#xff1f;真的不是在交智商税吗&#xff1f;等等这种问题已经看到不止一次了&#xff0c;今天小…

uniapp:使用DCloud的uni-push推送消息通知(在线模式)java实现

uniapp:使用DCloud的uni-push推送消息通知&#xff08;在线模式&#xff09;java实现 1.背景 今天开发app的时候遇到一个需求&#xff1a; 业务在出发特定条件的时候向对应的客户端推送消息通知。 为什么选择在线模式&#xff0c;因为我们使用的是德邦类似的手持终端&#xf…

Linux环境安装jira

jira 是项目与事务跟踪工具&#xff0c;被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 jira 软件安装包直接搜官网&#xff0c;然后可以选择免费的来下载&#xff1a; 安装 jira 之前&#xff0c;需要 Java 和 mysql 环境的…