为了账号安全,请及时绑定邮箱和手机立即绑定

Goland 在调试时不接受标准输入

Goland 在调试时不接受标准输入

Go
慕无忌1623718 2023-06-01 17:21:34
在 macOS 上使用 Goland 进行调试时,我的程序等待来自标准输入的输入。我可以在控制台中输入并按回车键,但输入没有传递到我的程序。这就像在文本编辑器中输入一样。我可以输入,按回车键,删除我刚刚做的一切。我的程序没有得到任何传递给它的信息。从控制台使用 dlv 进行调试时,我也遇到了这种行为,但是,我发现了关于如何在这种情况下解决它的讨论:https://github.com/go-delve/delve/issues/1274#issuecomment-406969034我也看到了 vscode 的类似修复:https://github.com/Microsoft/vscode-go/issues/219#issuecomment-192164367但我找不到 goland 的解决方案。
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

这是一个已知问题,

它的解决方法是使用正确的调试标志编译应用程序,-gcflags="all=-N -l" for Go 1.10 or newer and-gcflags="-N -l" 对于 Go 1.9 或更早版本),在操作系统终端中启动应用程序,然后使用该Attach to process...功能。您还可以查看链接的问题以查看其他可能的解决方法。


查看完整回答
反对 回复 2023-06-01
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

main您可以通过在通过读取输入之前将 STDIN env 变量添加到您的例程来解决fmt.Scanf()


    if stdin := os.Getenv("STDIN"); len(stdin) != 0 {

        stdinFile, err := os.Open(stdin)

        if err != nil {

            panic(err)

        }

        os.Stdin = stdinFile


    }


查看完整回答
反对 回复 2023-06-01
  • 2 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信