VS Code 在集成终端而不是调试控制台中开始调试
Posted
技术标签:
【中文标题】VS Code 在集成终端而不是调试控制台中开始调试【英文标题】:VS Code starts debugging in integrated terminal instead of debug console 【发布时间】:2018-09-09 09:22:44 【问题描述】:我使用 VS Code 已经有一段时间了,就在今天我开始遇到这个奇怪的问题。以前,如果我开始调试程序 (F5),它将开始调试并在“调试控制台”中显示输出:
但现在它在“终端”中启动调试器 并输出到“调试控制台”。
这是我的 launch.json:
"version": "0.2.0",
"configurations": [
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file"
]
我希望在“调试控制台”中输出 only(以前的默认行为)。请帮我把它恢复到原来的样子。
【问题讨论】:
【参考方案1】:编辑 3
与 python 扩展的release 2019.4.0 一样,现在可以将console
选项设置为internalConsole
(#4321)。
在.vscode/launch.json
:
"console": "internalConsole"
编辑 2
按照omartin2010's answer 的建议,您可以另外设置选项
"internalConsoleOptions": "openOnSessionStart"
开始调试时自动打开调试控制台。
编辑 1
将 "console" 选项显式设置为 "none"
最初是可行的方法(请参阅答案),但现在“无”不再有效(请参阅上面的编辑 3)
"console": "none"
原答案
要确保将输出写入调试控制台,您可以设置debugOptions。
在 yourlaunch.json
中将以下条目添加到您的配置中应该可以修复它:
"debugOptions": [
"RedirectOutput"
]
【讨论】:
它已经做到了。但它会打印到两个终端,当我开始调试时它会转到终端而不是调试控制台 那么可能明确设置console 选项会有所帮助。尝试设置"console": "integratedTerminal"
:
如果你最终需要终端,问题会更大。使用 none 代替添加新配置会更容易【参考方案2】:
最初下面的配置有效,但它似乎已被弃用,现在抛出错误:
"console": "none"
新的用法是:
"console": "internalConsole"
GitHub 中记录了一个错误以更新文档here。
【讨论】:
【参考方案3】:我遇到了同样的问题,但我通过在顶部添加一个看起来像这样的新配置来解决它:
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"console": "internalConsole"
,
我发现这是一个更好的解决方案,因为我不必更改我的其他调试功能之一。在您的情况下,“Python:终端(集成)”调试选项。我需要调试控制台功能。我使用这两个函数,它们会在我希望显示输出的位置显示输出。
【讨论】:
现在我只能根据需要在调试控制台中获得输出,但是,如何让调试控制台在我开始调试时自动启动?【参考方案4】:我猜不久前也有可能添加此选项...之前不确定是否可行:
...
"internalConsoleOptions": "openOnSessionStart",
...
希望对你有帮助
【讨论】:
【参考方案5】:
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"stopOnEntry": false,
"console": "none"
,
这些是我的 launch.json 设置,它正在使用它。
【讨论】:
基本上,除了“stopOnEntry”属性外,答案与@SnitchingAuggie 相同。请解释为什么这很重要。【参考方案6】:接受的答案对我不起作用,因为它似乎不是我的 VSCode Version 1.30.2 (1.30.2)
版本的选项:
Unknown console type 'none'.
我的解决方案是改用internalConsole
选项。我想它必须默认为我的版本上的integratedTerminal
选项。
这是一个例子:
NOTE: this is an example from my nodejs project but the console portion is still relevant regardless of project type. I have included more to show some context as well as other features such as envFile usage.
...
"type": "node",
"request": "launch",
"name": "Launch Program",
"envFile": "$workspaceRoot/.env",
"program": "$workspaceFolder/src/index.js",
"autoAttachChildProcesses": true,
"console": "internalConsole"
,
...
【讨论】:
OP的问题是指python调试不是nodejs 在这种情况下,项目类型实际上是无关紧要的。这通常是 IDE 设置的一个问题,适用于任何项目类型的打印输出到调试控制台。我知道如果您复制并粘贴我的完整配置可能会造成混淆,因此我会更新我的答案。【参考方案7】:如果您像我一样并且实际上想要做相反的事情(即阻止 VSCode 自动切换到“调试控制台”选项卡,而不是仅仅停留在“终端选项卡”上),那么我发现解决方案是将此设置添加到您的 launch.json
文件中:
"avoidWindowsConsoleRedirection": true
【讨论】:
以上是关于VS Code 在集成终端而不是调试控制台中开始调试的主要内容,如果未能解决你的问题,请参考以下文章