亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 VSCode 調試器中模擬交互式控制臺?

如何在 VSCode 調試器中模擬交互式控制臺?

Go
至尊寶的傳說 2023-07-17 14:39:07
我正在嘗試調試這個 Go 程序,它讀取文本并通過 VSCode 調試器將其輸出到控制臺。package mainimport (    "bufio"    "fmt"    "os")func main() {    reader := bufio.NewReader(os.Stdin)    fmt.Print("Enter text: ")    text, _ := reader.ReadString('\n')    fmt.Println(text)}它在終端上運行良好,但是當我使用 VSCode 調試它時,即使我專注于調試輸出,我也無法輸入任何內容。調試部分有一個控制臺,但它是 REPL 評估器,因此它也與終端控制臺無關。如何在 VSCode 中啟用控制臺以便可以在程序中輸入文本?
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

接下來是Microsoft/vscode-go 問題 219,并且仍然處于開放狀態。

是的 - VS Code 調試器控制臺當前不支持將任何輸入通過管道傳輸到 stdin。

僅供參考,您可以告訴代碼調試器在啟動配置中使用外部控制臺:

"externalConsole":?true

它有一個可能的解決方法,使用遠程調試+ vscode 任務,但這并不是微不足道的。

tasks.json:

{

? ? // See https://go.microsoft.com/fwlink/?LinkId=733558

? ? // for the documentation about the tasks.json format

? ? "version": "2.0.0",

? ? "tasks": [

? ? ? ? {

? ? ? ? ? ? "label": "echo",

? ? ? ? ? ? "type": "shell",

? ? ? ? ? ? "command": "cd ${fileDirname} && dlv debug --headless --listen=:2345 --log --api-version=2",

? ? ? ? ? ? "problemMatcher": [],

? ? ? ? ? ? "group": {

? ? ? ? ? ? ? ? "kind": "build",

? ? ? ? ? ? ? ? "isDefault": true

? ? ? ? ? ? }

? ? ? ? }

? ? ]

}

launch.json:


{

? ? // Use IntelliSense to learn about possible attributes.

? ? // Hover to view descriptions of existing attributes.

? ? // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387

? ? "version": "0.2.0",

? ? "configurations": [

? ? ? ? {

? ? ? ? ? ? "name": "Connect to server",

? ? ? ? ? ? "type": "go",

? ? ? ? ? ? "request": "launch",

? ? ? ? ? ? "mode": "remote",

? ? ? ? ? ? "remotePath": "${fileDirname}",

? ? ? ? ? ? "port": 2345,

? ? ? ? ? ? "host": "127.0.0.1",

? ? ? ? ? ? "program": "${fileDirname}",

? ? ? ? ? ? "env": {},

? ? ? ? ? ? "args": []

? ? ? ? }

? ? ]

}

使用快捷鍵(command/control + shift + B)運行任務,vscode 將啟動一個新的 shell 并運行 delve 服務器。


按 F5 調試 .go 文件。這對我來說可以。


查看完整回答
反對 回復 2023-07-17
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

要使用交互式控制臺,您可以包括

"console": "externalTerminal"

launch.json,而不是

"externalConsole": true

因為調試器可能不允許"externalConsole"(就像我的情況一樣)


查看完整回答
反對 回復 2023-07-17
  • 2 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號