delve应该安装到哪_golang调试工具Delve
转自:http://www.cnblogs.com/li-peng/p/8522592.html
Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个正在运行中的golang程序,进行调试。
线上golang服务出现问题时,Devle是必不少的在线调试工具,如果使用docker,也可以把Devle打进docker镜像里,调试代码。
安装Devle
安装Devle非常简单,直接运行go get 即可:
go get -u github.com/derekparker/delve/cmd/dlv
如果你的go版本为1.5请先设置环境变量GO15VENDOREXPERIMENT=1再运行go get。我的go版本为1.10,不用设置。
使用Devle调试golang服务
先写一个简单的web服务,然后使用Devle来进行调试。
在$GOPATH/src/github.com/mytest 文件夹下创建main.go
1 package main
2
3 import (
4 "fmt"
5 "log"
6 "net/http"
7 "os"
8 )
9
10 const port = "8000"
11
12 func main() {
13 http.HandleFunc("/hi", hi)
14
15 fmt.Println("runing on port: " + port)
16 log.Fatal(http.ListenAndServe(":" + port, nil))
17 }
18
19 func hi(w http.ResponseWriter, r *http.Request) {
20 hostName, _ := os.Hostname()
21 fmt.Fprintf(w, "HostName: %s", hostName)
22 }
简单吧,一个运行在8000端口上的web服务,访问 hi会返回机器的名称。上面代码的行号是很有用的,等会我们打断点的时候会用到。
使用Delve运行我们的main.go
dlv debug ./main.go
可以输入help来看一下帮助文档
很简单的一些命令
我们先打在main方法上打一个断点:
b main.main
然后运行c 来运行到断点,
在func li 里打一个断点,我们可以使用
b main.hi
或者使用 "文件:行号"来打断点
b /home/goworkspace/src/github.com/mytest/main.go:20
现在执行continue 让服务跑起来。访问一下我们的服务,看hi方法会不会停下来。
curl localhost:8000/hi
看到了没,在19号停下来了。
输入 n 回车,执行到下一行
输入s 回车,单步执行
输入 print(别名p)输出变量信息
输入 args 打印出所有的方法参数信息
输入 locals 打印所有的本地变量
其他的命令我就不在这里给大家演示了,自己动动手试一下。
使用Delve附加到运行的golang服务进行调试
先编译一下我们的main.go然后去行main
go build main.go
./main
然后使用Delve附加到我们的项目上,先看一下我们的项目的pid
ps aux|grep main
dlv attach 29260
在hi方法里打断点,然后执行c来等待断点的执行。
b /home/goworkspace/src/github.com/mytest/main.go:20
访问我们的服务器,看一下断点会不会被执行
curl localhost:8000/hi
断点执行了。然后调试你的代码吧!
=========================================================================================
远程调试
在服务器上 ps x|grep game 查找到gameserver的进程pid
然后服务器命令行输入:
dlv attach $PID --headless --api-version=2 --log --listen=:8181
本机只要输入:
dlv connect remote_ip:8181 连接到服务器上的dlv进程,就可以在本机远程调试了。
goland调试=========================================================================================
dlv停止调试可以用ctrl+|
delve应该安装到哪_golang调试工具Delve相关推荐
- delve应该安装到哪_Golang调试工具Delve安装及使用
一.安装 照着 github 上 delve 项目的安装说明操作, go mod 模式下推荐使用第二种方式. 1.拉取最新 delve 项目代码到本地,编译安装. # cd $GOPATH/src/ ...
- delve应该安装到哪_Go调试工具—— Delve
参考https://github.com/go-delve/delve 安装 首先你必须有等于或高于1.8版本的Go,我的版本是: userdeMBP:go-learning user$ go ver ...
- delve应该安装到哪_Golang /Go调试工具delve
安装 这里提供了支持的所有平台(操作系统)上安装Delve的说明. 请注意您必须安装Go 1.5或更高版本. 此外如果使用Go 1.5,您必须设置GO15VENDOREXPERIMENT = 1,然后 ...
- delve应该安装到哪_使用 Delve 代替 Println 来调试 Go 程序 | Linux 中国
Delve 是能让调试变成轻而易举的事的万能工具包.来源:https://linux.cn/article-12400-1.html 作者:Gaurav Kamathe 译者:Xiaobin.Liu ...
- delve应该安装到哪_使用 delve 调试 golang 程序
安装 delve 官方的文档已经很全了,参考这里(github)安装.Mac OSX 比较麻烦,需要搞定证书. 断点和变量打印 delve 装好之后就可以直接在命令行使用 dlv 命令了. 查看可用的 ...
- Golang调试工具Delve使用简介
Delve 是一款很不错的 Golang 调试工具,可以实现类似 Visual Studio 的断点调试功能,也可以用来在程序 Crash 的时候生成 Coredump 文件,此外 Delve 也适合 ...
- LiteIDE调试工具delve
1.使用gdb调试报错"/usr/local/bin/gdb was found on system PATH(hint: is GDB installed?)"以及"L ...
- ubuntu 18.04安装adb和fastboot调试工具
ubuntu 18.04安装adb和fastboot调试工具 安装adb和fastboot 报错信息 安装adb和fastboot sudo apt-updata sudo apt-get insta ...
- golang调试工具Delve
转自:http://www.cnblogs.com/li-peng/p/8522592.html Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个 ...
最新文章
- 【Linux】eclipse juno 边框过大的调整方法
- 电信/移动/联通同台秀肌肉 集体表态:云计算市场“不能丢”!
- 狂妄之人怎么用计算机弹,【B】 Undertale Sans战斗曲 MEGALOVANIA狂妄之人
- 为什么优秀和听话总是难两全?
- [转]angular2之@Output() EventEmitter
- 简单的描述关于开发部署产生401,500的错误处理
- day4:单用户及救援模式及互相登录
- 简单mysql主从配置
- java applet init_java applet init start
- u盘 固态硬盘 读写速度测试软件,超级U盘/SSD读写可靠性(扩容)测试工具urwtest v1.8...
- Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1BH\
- 看图说话!这个 AI 商品识别系统开源了!
- 手机5g什么时候普及_5g什么时候普及民用
- oracle 虚拟表 多行,Oracle使用虚拟表dual一次插入多条记录【摘录】
- 微一案做php,微一案:真正的高效率,都是这么炼成的
- 企业邮箱邮件撤回可撤回几次?邮件误删恢复怎么用?
- OpenGL 透视投影 齐次裁剪空间 深度缓存
- Requests库常用方法及参数介绍
- Java之父——詹姆斯·高斯林
- chapter请求和响应