转自: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相关推荐

  1. delve应该安装到哪_Golang调试工具Delve安装及使用

    一.安装 照着 github 上 delve 项目的安装说明操作, go mod 模式下推荐使用第二种方式. 1.拉取最新 delve 项目代码到本地,编译安装. # cd $GOPATH/src/ ...

  2. delve应该安装到哪_Go调试工具—— Delve

    参考https://github.com/go-delve/delve 安装 首先你必须有等于或高于1.8版本的Go,我的版本是: userdeMBP:go-learning user$ go ver ...

  3. delve应该安装到哪_Golang /Go调试工具delve

    安装 这里提供了支持的所有平台(操作系统)上安装Delve的说明. 请注意您必须安装Go 1.5或更高版本. 此外如果使用Go 1.5,您必须设置GO15VENDOREXPERIMENT = 1,然后 ...

  4. delve应该安装到哪_使用 Delve 代替 Println 来调试 Go 程序 | Linux 中国

    Delve 是能让调试变成轻而易举的事的万能工具包.来源:https://linux.cn/article-12400-1.html 作者:Gaurav Kamathe 译者:Xiaobin.Liu ...

  5. delve应该安装到哪_使用 delve 调试 golang 程序

    安装 delve 官方的文档已经很全了,参考这里(github)安装.Mac OSX 比较麻烦,需要搞定证书. 断点和变量打印 delve 装好之后就可以直接在命令行使用 dlv 命令了. 查看可用的 ...

  6. Golang调试工具Delve使用简介

    Delve 是一款很不错的 Golang 调试工具,可以实现类似 Visual Studio 的断点调试功能,也可以用来在程序 Crash 的时候生成 Coredump 文件,此外 Delve 也适合 ...

  7. LiteIDE调试工具delve

    1.使用gdb调试报错"/usr/local/bin/gdb was found on system PATH(hint: is GDB installed?)"以及"L ...

  8. ubuntu 18.04安装adb和fastboot调试工具

    ubuntu 18.04安装adb和fastboot调试工具 安装adb和fastboot 报错信息 安装adb和fastboot sudo apt-updata sudo apt-get insta ...

  9. golang调试工具Delve

    转自:http://www.cnblogs.com/li-peng/p/8522592.html Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个 ...

最新文章

  1. 【Linux】eclipse juno 边框过大的调整方法
  2. 电信/移动/联通同台秀肌肉 集体表态:云计算市场“不能丢”!
  3. 狂妄之人怎么用计算机弹,【B】 Undertale Sans战斗曲 MEGALOVANIA狂妄之人
  4. 为什么优秀和听话总是难两全?
  5. [转]angular2之@Output() EventEmitter
  6. 简单的描述关于开发部署产生401,500的错误处理
  7. day4:单用户及救援模式及互相登录
  8. 简单mysql主从配置
  9. java applet init_java applet init start
  10. u盘 固态硬盘 读写速度测试软件,超级U盘/SSD读写可靠性(扩容)测试工具urwtest v1.8...
  11. Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1BH\
  12. 看图说话!这个 AI 商品识别系统开源了!
  13. 手机5g什么时候普及_5g什么时候普及民用
  14. oracle 虚拟表 多行,Oracle使用虚拟表dual一次插入多条记录【摘录】
  15. 微一案做php,微一案:真正的高效率,都是这么炼成的
  16. 企业邮箱邮件撤回可撤回几次?邮件误删恢复怎么用?
  17. OpenGL 透视投影 齐次裁剪空间 深度缓存
  18. Requests库常用方法及参数介绍
  19. Java之父——詹姆斯·高斯林
  20. chapter请求和响应

热门文章

  1. Ubuntu 16.04 中安装第三方软件
  2. 【数据分析】-A/B测试
  3. 视频编辑软件EDIUS 6.02使用体会和功能、技巧介绍
  4. ps油画滤镜,消失点,camera row,查找边缘,等高线
  5. 汇编问题rep movsb 和 cld 是什么意思
  6. 人工智能赋能教师教育的真知与实践
  7. 潜在失效模式及其影响分析(DFMEA)介绍
  8. cdoj 574 High-level ancients dfs序+线段树
  9. 2023全新彩虹晴天多功能系统源码 知识付费系统 虚拟商城系统 完美可用
  10. 「低代码系列报道」华为云打造行业aPaaS集群,抢占SaaS发展黄金十年