运行环境

这是我的vscode的一些信息
版本: 1.58.2
提交: c3f126316369cd610563c75b1b1725e0679adfb3
日期: 2021-07-14T22:30:16.440Z
Electron: 12.0.13
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Linux x64 5.10.0-kali9-amd64

情况的概述

fmt.scanf()str<-chan1

使用vscode无法正常对golang程序进行debug

也许是因为go语言的堆栈可能会动态变化

会出现问题的代码

一下代码在使用go run命令运行时都是正常运行的,但是无法使用F5调试

package main

import (
    "fmt"
    "time"
)

var c chan string

func foo() {
    for {
        c <- "hello"//运行这句话时出现错误
    }
}

func main() {
    c = make(chan string)
    go foo()
    time.Sleep(10 * time.Second)
    s := <-c
    fmt.Println(s)
}
package main

import (

"fmt"

)

func  main() {

var  str  string

fmt.Scanln(&str)//运行这句话是出现错误

fmt.Print(str)

}

我的困难

我希望调试使用到这些语句的程序,但是程序一旦调试到这些语句的时候出现的错误会导致我无法调试下面的语句。我如何才能调试使用到这些语句的程序呢?

我尝试过的解决方案

1)使用dlv
我的bin目录下是含有的dlv的,但是我不知道应该对vscode做哪些设置,才能正常的使用dlv。网上的一些launch.json的配置方式,我使用了,但是没有效果。