go语言并行调试器,go代码调试
delve基础用法及在vscode中的使用
delve 是go语言的调试器,delve的目标是为go提供一个简洁、功能齐全的debug工具,delve易于调用和使用。
创新互联是专业的神木网站建设公司,神木接单;提供成都做网站、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行神木网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
为了能够编译delve,需要安装Go 1.10或更高版本
安装好go后,直接go get即可安装,更多安装教程见:
go get github.com/go-delve/delve/cmd/dlv
安装好后,在终端执行dlv或者dlv help 会看到dlv的帮助信息,则说明安装成功
dlv常用命令
delve的目标是成为一个简洁而强大的工具。但如果你不习惯在编译语言中使用源码调试,则可能令人困惑。本文档将提供开始调试go程序所需的全部信息。
调试例子程序如下
├── go.mod
├── go.sum
├── main.go
├── test
└── utils
├── util.go
└── util_test.go
调试程序主要有三个文件,main.go、util.go、util_test.go,内容如下,比较简单,go包管理工具使用的是go module,模块名为test
在vscode debug 的设置中配置launch.json文件
mode 设置为debug时,program的内容${fileDirname}即可,mode 设置为exec时,program的值为二进制文件的路径,通过设置mode的值,即可调试源码和二进制程序(也需要有源码)。mode模式为auto时,测试了下,vscode 并不能通过program的内容来判断是debug还是exec
远程调试时,需要在远程也有源码、二进制包和dlv工具
在远端执行dlv命令
dlv debug --headless --listen=:8989 --api-version=2 --accept-multiclient #用degbug方式启动远程应用程序
dlv exec --headless --listen=:8989 ./test --api-version=2 --accept-multiclient # exec执行当前目录下的test二进制文件
--listen:指定调试端口
--api-version:指定api版本,默认是1
--accept-multiclient:接受多个client调试
在vscode中线下好源码,和远端的源码结构一致。launch.json配置如下:
在vscode中打好断点后,就可以进行远程调试了
Go语言的开源项目
1.Docker项目
网址为 。
介绍:Docker是一种操作系统层面的虚拟化技术,可以在操作系统和应用程序之间进行隔离,也可以称之为容器。Docker可以在一台物理服务器上快速运行一个或多个实例。例如,启动一个Cent OS操作系统,并在其内部命令行执行指令后结束,整个过程就像自己在操作系统一样高效。
2.golang项目
网址为 。
介绍:Go语言的早期源码使用C语言和汇编语言写成。从Go 1.5版本自举后,完全使用Go语言自身进行编写。Go语言的源码对了解Go语言的底层调度有极大的参考意义,建议希望对Go语言有深入了解的读者读一读。
3.Kubernetes项目
网址为 。
介绍:Google公司开发的构建于Docker之上的容器调度服务,用户可以通过Kubernetes集群进行云端容器集群管理。
4.etcd项目
网址为 。
介绍:一款分布式、可靠的KV存储系统,可以快速进行云配置。
5.beego项目
网址为 。
介绍:beego是一个类似Python的Tornado框架,采用了RESTFul的设计思路,使用Go语言编写的一个极轻量级、高可伸缩性和高性能的Web应用框架。
6.martini项目
网址为 。
介绍:一款快速构建模块化的Web应用的Web框架。
7.codis项目
网址为 Labs/codis。
介绍:国产的优秀分布式Redis解决方案。
8.delve项目
网址为 。
介绍:Go语言强大的调试器,被很多集成环境和编辑器整合。
go语言调试器有哪些官网
可以去DELVE官网进行下载。
关于delve工具的介绍,这里简单给大家介绍一下。
delve在go项目及应用的开发中可以用来追踪程序中的异常代码,也可以通过打日志的方式追查问题,但是更重要也是非常厉害的一点,就是delve可以直接分析程序执行的情况。这一点在后期或线上的问题排查中无疑是提供了一个非常大的便捷。
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。
Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础。
采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
Delve常用命令
命令功能:
dlv attach后面跟 pid,用来Debug编译好的Golang程序。
dlv core用于 coredump。
dlv debug后面跟要调试的 go 文件,进入 Debug。
dlv testDebug test 函数。
分享标题:go语言并行调试器,go代码调试
文章来源:http://ybzwz.com/article/dsipsoe.html