小编Boh*_*riv的帖子

如何为特定的 goroutine 设置断点?

我正在尝试调试一个简单的 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)

go delve

2
推荐指数
1
解决办法
2100
查看次数

标签 统计

delve ×1

go ×1