![为什么 Visual Studio Code 的调试控制台输出被转义以及如何修复它?](https://linux22.com/image/1571582/%E4%B8%BA%E4%BB%80%E4%B9%88%20Visual%20Studio%20Code%20%E7%9A%84%E8%B0%83%E8%AF%95%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%BE%93%E5%87%BA%E8%A2%AB%E8%BD%AC%E4%B9%89%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E5%AE%83%EF%BC%9F.png)
目前,当我在 Visual Studio Code 中使用 LLDB 调试器启动程序时,由于某种原因,我在 VSCode 的调试控制台中得到了转义的 stdout 输出。例如,我的程序输出以下内容:
Playable cards: s9 s0 s8 s7
Playing: s9
Playable cards: s0 s8 s7
Playing: s0
Playable cards: s8 s7
但是在 VSCode 的调试控制台中我得到了这个:
@"Playable cards: s9 s0 s8 s7 \r\n"
@"Playing: s9\r\n"
@" Playable cards: s0 s8 s7 \r\n"
@" Playing: s0\r\n"
@" Playable cards: s8 s7 \r\n"
为什么格式是这样的?可以修复吗?这是在 OSX 上,使用最新的 VSCode。
我的.vscode/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": "solitaire",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/build/solitaire",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"internalConsoleOptions": "openOnSessionStart",
"MIMode": "lldb"
}
]
}
答案1
您可以通过向 launch.json 添加“externalConsole”:true 来解决此问题,这会将输出发送到单独的终端窗口。