delve调试go程序

安装delve

Mac: xcode-select --install

1
2
$ go get -u github.com/derekparker/delve/cmd/dlv
$ make install

实例程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world")
say("hello")
}

生成测试程序:

1
go build test.go

启动delve

启动已经生成的执行文件

1
2
dlv exec test
dlv exec ./cockroach -- start --insecure --store=node1 --host=localhost

根据文件进行启动

1
2
3
dlv debug test.go
dlv debug main.go -- start --insecure --store=node1 --host=localhost

attach到正在执行的程序

1
dlv attach pid test

调试命令

断点设置

dlv debug

  • b main.main: breakpoint on package.function
  • b test.go:16: breakpoint on lineno
  • bp: list all breakpoints
  • clearall: clear all breakpoints
  • clear id: clear id breakpoint

调试

  • c: continue
  • s: step in
  • stepout: step out
  • bt: print stack trace
  • threads: list threads
  • thread xxxx: switch to xxxx thread

参考链接

  1. delve github
  2. delve install
  3. delve usage
  4. delve commands

本文标题:delve调试go程序

文章作者:Louis

发布时间:2017年10月26日 - 16:10

最后更新:2017年10月28日 - 14:10

原始链接:/2017/10/26/dlv/

许可协议: Louis-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。