使用vscode无法正常对golang程序进行debug
运行环境
这是我的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
情况的概述
在vscode使用F5启动调试,在执行到类似,fmt.scanf()
,str<-chan1
之类的语句时,右下角会出现这样的错误提示
也许是因为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的配置方式,我使用了,但是没有效果。
推荐文章: