как отладить goroutine в vscode? - PullRequest
       108

как отладить goroutine в vscode?

0 голосов
/ 13 апреля 2020

рассмотрим небольшой фрагмент ниже:

package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup
    wg.Add(2)
    go func() {
        defer wg.Done()
        for i := 1; i < 100; i++ {
            fmt.Println("A:", i)
        }
    }()
    go func() {
        defer wg.Done()
        for i := 1; i < 100; i++ {
            fmt.Println("B:", i)
        }
    }()
    wg.Wait()
}

в delve, мы можем легко переключаться между режимами, используя такие команды, как

goroutine
goroutine <id>
goroutine <id> <command>

, и если я хочу запустить шаг за шагом в goroutine 1, просто используйте команду

goroutine 1 next

В vscode кажется, что единственный способ справиться с goroutines - это стек вызовов, однако кажется, что это внутренние потоки во время выполнения go, а не goroutines, так как я могу сосредоточить запущенный процесс в указанной goroutine?

1 Ответ

0 голосов
/ 13 апреля 2020

Jetbrains представили новую замечательную функцию для отладки go -программ в своей IDE. Пожалуйста, перейдите по этой ссылке , чтобы взглянуть

Он использует функцию меток, предоставленных pprof, и не является эксклюзивным для jetbrain. Полагаю, они могли настроить его для удобства использования. Вот статья о ярлыках, так что вы можете попробовать реализовать ее и в vscode.

...