Golang - debug工具 DELVE

状况

最近的经验是要把公司的程序码翻新
但由於旧有的程序码技术债实在太过庞大,没办法像以前以往接手到高品质的专案还可以用写轮眼观察资料变化
在新专案里面需要将流程跟资料能够观察和量化统计起来,以确保大部分的资料是符合需求的

所以最近在研究以前没有使用过的debug工具来辅助开发

使用工具

今天介绍的工具叫DELVE,能够运行你的code并设下断点观察你的process变化
官网:https://github.com/derekparker/delve
官网内有doc可以看怎麽安装,就不介绍安装了
基本上蛮简单的,command没有很多

DELVE使用方法

example code

package main

import "log"

func main() {
	total := 0
	param1 := 5
	param2 := 10

	total = sum(param1, param2)
	log.Println(total)
}

func sum(v1, v2 int) int {
	return v1 + v2
}

启动你要侦错的档案

dlv debug main.go

设定断点

break main.go:8

启动process

c // c = continue

印出variable并观察变化

p total // p = print

到这边的terminal会显示这样,可以开始仔细观察total的变化
https://ithelp.ithome.com.tw/upload/images/20211018/20118878XtuIzawAN0.jpg

执行下一行两次到结束并再次印出total的结果

n // n = next

https://ithelp.ithome.com.tw/upload/images/20211018/20118878r9erCYEkZE.jpg

总结

有这种工具在一些variable或逻辑比较复杂的地方就不用搞得头昏眼花了
不过不知道有没有更方便的工具support开发
像是前端的同事在开发他设断点之後逐步执行後,用滑鼠指到程序码上就有结果出来
我也好想要阿~~~~~~~~~

参考


<<:  开放最短路径优先 (OSPF)

>>:  [2022年铁人赛预告] 不专业的 Youtuber 之路:「跟着舒安逛夜市~」

Day 16 - 取得帐务相关资讯 (上)

本篇重点 api.list_positions api.list_profit_loss api.l...

Day 26 | 共享 MobX store with get_it

还记得我们很早之前说过Flutter有一个问题就是嵌套太多层时我们要从下层拿到上层的东西时会变得十分...

Day02 -本机环境准备,安装Python

本机环境 OS: Windows 10 原始码编辑工具: Visual Studio Code (後...

Day 26 Serverless的运算服务-AWS Lambda

因应容器化的服务,AWS云上也产生了相对应的服务-Lambda,让我们可以不用顾及作业系统底层恼人的...

[Day26] Business Logic Vulnerabilities - 商业逻辑漏洞

前言 前面介绍过很多各种各样的web application攻击手法,今天来介绍Business L...