VSCode Mac端externalConsole设为false时标准输出去向及显示方法
Mac下VSCode调试时标准输出不显示的解决办法
当你把launch.json里的"externalConsole": false后,默认输出位置未生效,可通过调整console字段指定输出标签页:
输出到Terminal标签页:
在launch.json的调试配置里添加或修改"console": "integratedTerminal",示例配置:{ "version": "0.2.0", "configurations": [ { "name": "调试程序", "type": "cppdbg", // 根据你的语言类型调整,比如Python用"python" "request": "launch", "program": "${workspaceFolder}/可执行文件路径", "args": [], "cwd": "${workspaceFolder}", "externalConsole": false, "console": "integratedTerminal" } ] }配置后,应用的标准输出会直接显示在VSCode的Terminal标签里,和编译输出区分开。
输出到Debug Console标签页:
将console设为"internalConsole",但要注意程序的输出缓冲问题:比如C++中用printf后要加fflush(stdout),用cout时用endl(而非\n)来刷新缓冲区,否则输出可能会卡在缓冲区,直到程序结束才显示。调试器的库加载信息能显示,是因为调试器本身的输出不受应用缓冲影响,而应用的stdout需要主动刷新才能实时显示在Debug Console。注意:Output标签页默认用于编译等任务的输出,应用的标准输出无法直接定向到这里,优先选择前两种方式。
内容的提问来源于stack exchange,提问作者Joymaker
相关产品推荐
相关产品推荐

