默认情况下调试器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的集成控制台终端。