慕無忌1623718
2023-06-01 17:21:34
在 macOS 上使用 Goland 進(jìn)行調(diào)試時(shí),我的程序等待來自標(biāo)準(zhǔn)輸入的輸入。我可以在控制臺(tái)中輸入并按回車鍵,但輸入沒有傳遞到我的程序。這就像在文本編輯器中輸入一樣。我可以輸入,按回車鍵,刪除我剛剛做的一切。我的程序沒有得到任何傳遞給它的信息。從控制臺(tái)使用 dlv 進(jìn)行調(diào)試時(shí),我也遇到了這種行為,但是,我發(fā)現(xiàn)了關(guān)于如何在這種情況下解決它的討論:https://github.com/go-delve/delve/issues/1274#issuecomment-406969034我也看到了 vscode 的類似修復(fù):https://github.com/Microsoft/vscode-go/issues/219#issuecomment-192164367但我找不到 goland 的解決方案。
2 回答

30秒到達(dá)戰(zhàn)場(chǎng)
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
這是一個(gè)已知問題,
它的解決方法是使用正確的調(diào)試標(biāo)志編譯應(yīng)用程序,-gcflags="all=-N -l" for Go 1.10 or newer and
-gcflags="-N -l" 對(duì)于 Go 1.9 或更早版本),在操作系統(tǒng)終端中啟動(dòng)應(yīng)用程序,然后使用該Attach to process...
功能。您還可以查看鏈接的問題以查看其他可能的解決方法。

收到一只叮咚
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
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
}
- 2 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報(bào)
0/150
提交
取消