带有fmt.Scanln的VSCode golang调试问题

时间:2018-09-07 19:39:14

标签: debugging go visual-studio-code

我想调试一个非常简单的go程序(只是看看VSCode是否/如何工作)

到目前为止,这是我的src:

package main

import (
    "fmt"
)

func main() {
    fmt.Printf("Please enter your name\n>>")
    name := "" //«breakpoint on this line»
    fmt.Scanln(&name)
    fmt.Println("Welcome to my awesome program, " + name + "!")
}

当我开始调试时,一切都很好,直到我点击下一行(fmt.Scanln(&name))上的“跳过”按钮为止。

我的局部变量从列表中消失,我无法再按“ Step”按钮(只能暂停,不执行任何操作,然后重新启动和停止),并且如果我尝试在调试控制台中输入内容,则什么也不会发生。然后当我停止调试时,它会告诉我

«whatever I entered»
*not available*

您知道我的错误可能是什么吗?任何帮助将不胜感激。

预先感谢;伊桑

1 个答案:

答案 0 :(得分:0)

看起来这是VSCode使用delve调试器的实现的局限性。也许很快就会被允许,而且如果您在外部进行钻研,它现在可以正常工作。请参阅此处的讨论:https://github.com/Microsoft/vscode-go/issues/219