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

安装与配置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 mainimport "fmt"func main() {x := 10y := 20z := 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.mzph.cn/news/706789.shtml

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

相关文章

高通 AI Hub 上手指南

文章介绍 2月26日,高通在2024年世界移动通信大会(MWC2024)上发布高通AI Hub, AI Hub 简化了AI 模型部署到边缘设备的过程。可以利用AI-hub云端托管 Qualcomm 设备上,在几分钟内完成模型的优化、验证和部署。本文以Pyto…

RV32/64 特权架构 - 特权模式与指令

RV32/64 特权架构 - 特权模式与指令 1 特权模式2 特权指令2.1 mret(从机器模式返回到先前的模式)2.2 sret(从监管模式返回到先前的模式)2.3 wfi(等待中断)2.4 sfence.vma(内存屏障) …

idea 更新maven java版本变化

今天遇到个问题就是&#xff0c;点击maven的reload&#xff0c;会导致setting 里的java compiler 版本变化 这里的话&#xff0c;应该是settings.xml文件里面的这个限定死了&#xff0c;修改一下或者去掉就可以了 <profile><id>JDK-1.8</id><activatio…

华为OD机试真题-靠谱的车-2023年OD统一考试(C卷)---Python3-开源

题目&#xff1a; 考察内容&#xff1a; 思维转化&#xff0c;进制转化&#xff0c;9进制转为10进制&#xff0c;在4的位置1&#xff0c;需要判断是否大于4 代码&#xff1a; """ 题目分析&#xff1a; 9进制转化为10进制23-25 39-50 399-500输入&#xff1a…

06 基于单位脉冲信号的信号合成与分解

各位看官&#xff0c;大家好&#xff01;本讲为《数字信号处理理论篇》06 基于单位脉冲信号的信号合成与分解。&#xff08;特别提示&#xff1a;课程内容为由浅入深的特性&#xff0c;而且前后对照&#xff0c;不要跳跃观看&#xff0c;请按照文章或视频顺序进行观看。 笔者今…

排序算法--堆排序

堆排序的时间复杂度是O&#xff08;N*logN&#xff09;&#xff0c;优于选择排序O&#xff08;N^2&#xff09; 一、堆 1.堆的概念&#xff1a;堆一般指的是二叉堆&#xff0c;顾名思义&#xff0c;二叉堆是完全二叉树或者近似完全二 2.堆的性质&#xff1a;①完全二叉树 ②每…

MySQL基本数据类型

目录 一&#xff0c;各类型特点 1.1.整数 1.2.实数&#xff08;带有小数点&#xff09; 1.3.TEXT、BLOB 时间1.4.日期 1.5.选择标识符 一&#xff0c;各类型特点 1.1.整数 TINYINT 8位 &#xff08;-128 - 127&#xff09;SMALLINT 16位 &#xff08;-32768 - 32767&am…

数据结构(C语言)代码实现(九)——迷宫探路表达式求值

目录 参考资料 迷宫探路 顺序栈头文件SqStack.h 顺序栈函数实现SqStack.cpp 迷宫探路主函数 表达式求值 链式顺序栈头文件LinkStack.h 链式顺序栈函数实现LinkStack.cpp 表达式求值主函数 测试结果 参考资料 数据结构严蔚敏版 2021-9-22【数据结构/严蔚敏】【顺序…

istio学习记录——VirtualService详解

上一篇使用VirtualService进行了简单的流量控制&#xff0c;并通过Gateway将流量导入到了集群内。这一篇将更加深入的介绍 VirtualService。 k8s中有service&#xff0c;service能够对流量进行负载均衡&#xff0c;那为什么istio又引入了VirtualService呢&#xff0c;因为serv…

wsl2挂载识别U盘中的内容

&#xff08;1&#xff09;wsl2中识别U盘&#xff0c;访问U盘 U盘插入电脑后&#xff0c;WSL并不会识别出U盘&#xff0c;如果想要在WSL中使用或查看U盘文件&#xff0c;需要挂载USB设备。 1、首先建一个文件夹用来挂载USB设备里文件的文件夹&#xff1a; sudo mkdir /mnt/e…

android stdio环境搭建

android stdio环境搭建 Jdk环境搭建 1. 准备Jdk,这边已经准备好了jdk1.8.0,该文件直接使用即可 2. 系统变量添加 %JAVA_HOME%\bin JAVA_HOME 3. 系统变量&#xff0c;Path路径添加 4. 添加完成后&#xff0c;输入命令javac / java -version&#xff0c;验证环境是否搭建…

贪心算法练习day2

删除字符 1.题目及要求 2.解题思路 1&#xff09;初始化最小字母为‘Z’&#xff0c;确保任何字母都能与之比较 2&#xff09;遍历单词&#xff0c;找到当前未删除字母中的最小字母 3&#xff09;获取当前位置的字母 current word.charAt(i)&#xff1b; 4&#xff09;删…

MR混合现实情景实训教学系统在商务外语课堂的应用

一、MR混合现实情景实训教学系统的特点 MR混合现实情景实训教学系统是一种将虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术相结合的教育平台。它通过三维立体图像&#xff0c;模拟真实的商务环境&#xff0c;使学生在虚拟环境中进行外语沟通实…

精品基于SpringBoot的体育馆场地预约赛事管理系统的设计与实现-选座

《[含文档PPT源码等]精品基于SpringBoot的体育馆管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#…

状态模式(State Pattern)

定义 状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。这意味着&#xff0c;当对象的状态发生变化时&#xff0c;它的行为也会发生变化。状态模式特别适用于行为依赖于其状态的对象&#xff0c;而且当这…

学习pybind11:Hello World例子

首先要明白pybind11是干啥的&#xff0c;对于一个C/C库&#xff0c;可以用pybind11封装它的接口为Python接口&#xff0c;这样得到一个python库&#xff0c;就可以把功能强大的库丢给使用python的boys & girls使用了~ 因此&#xff0c;使用pybind11做封装&#xff0c;是我…

分享便携式血氧仪单片机方案

血氧仪主要测量指标分别为脉率、血氧饱和度、灌注指数。血氧饱和度是临床医疗上重要的基础数据之一。以家用指压式血氧仪为例&#xff0c;一个血氧仪一般由MCU、存储芯片、两个控制LED的数模转换器、两个发光二极管驱动等组成。 灵动微电子的MM32MCU产品已被广泛地应用在了一些…

代码随想录算法训练营第44天|● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

文章目录 ● 完全背包卡码网&#xff1a;52. 携带研究材料-完全背包理论练习代码&#xff1a; ● 518. 零钱兑换 II思路&#xff1a;五部曲 代码&#xff1a;滚动数组代码二&#xff1a;二维数组 ● 377. 组合总和 Ⅳ思路&#xff1a;五部曲 代码&#xff1a; ● 完全背包 卡码…

LeetCode 2621.睡眠函数

请你编写一个异步函数&#xff0c;它接收一个正整数参数 millis &#xff0c;并休眠 millis 毫秒。要求此函数可以解析任何值。 示例 1&#xff1a; 输入&#xff1a;millis 100 输出&#xff1a;100 解释&#xff1a; 在 100ms 后此异步函数执行完时返回一个 Promise 对象 …

Bert-as-service 学习

pip3 install --user --upgrade tensorflow 安装遇到的问题如下&#xff1a; pip3 install --user --upgrade tensorflow 1052 pip uninstall protobuf 1053 pip3 uninstall protobuf 1054 pip3 install protobuf3.20.* 1055 pip3 install open-clip-torch2.8.2 1…