默认情况下调试器dlv使用调试控制台来调试程序,此时不能执行具有标准输入功能的函数调用,如
_, err := io.Copy(dst, os.Stdin);
解决方法是修改当前项目的launch.json文件,如下
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Launch Package","type": "go","request": "launch","mode": "auto","program": "${fileDirname}","console": "integratedTerminal"}]
}
将控制台"console"的值改为"integratedTerminal",即使用VSCode的集成控制台终端。