我正在尝试调试一个简单的 golang 程序,但不知道如何在delve调试器中的特定 goroutine 上设置断点。
下面是一个例子:
package main
import "fmt"
func adder(a int, b int, res_chan chan int) {
c := a + b
res_chan <- c
}
func main() {
chan1 := make(chan int)
chan2 := make(chan int)
go adder(0, 1, chan1)
go adder(0, 2, chan2)
res1 := <-chan1
res2 := <-chan2
fmt.Printf("Channel 1: %d\nChannel 2: %d\n", res1, res2)
}
Run Code Online (Sandbox Code Playgroud)
我这样做dlv debug:
Type 'help' for list of commands.
Run Code Online (Sandbox Code Playgroud)
在 goroutine 上设置一个断点,在这里我直觉地假设调试器将停止两次(在每个调用的 goroutine 上):
(dlv) b …Run Code Online (Sandbox Code Playgroud)