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

标签 macos debugging go stdin goland

在 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 的解决方案。

最佳答案

这是一个已知问题,查看官方issue tracker report为此。

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

关于macos - Goland 在调试时不接受标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54282941/

相关文章:

node.js - 是否可以调试当前正在运行的生产 Node 应用程序?

C++ for 循环 : 'i' was not declared in this scope

go - 指向 slice 的指针是使用引用还是复制?

C++ 跨平台开发(Windows 和 Mac OS)

c++ - 如何在 OS X 上使用额外模块编译 OpenCV?

javascript - 如何调试我的 JavaScript 代码?

json - 如何在 golang 中将字符串值作为 json 对象返回?

github - 在 Golang 中实现 GitHub 徽章

macos - 使用蓝牙伴侣与 Arduino UNO 和 Mac 进行串行通信

macos - Mac OS与Sysinternals和Powertoys对应