C ++:调试时看不到VS Code中的输出

时间:2020-05-18 12:26:15

标签: c++ visual-studio-code configuration std

今天,我试图从VS2019切换到VS Code,同时继续使用MSVC。这样,我通常会在轻量级且更轻松的环境中进行开发,并且当我需要高级知识(例如查看热路径)时,就可以打开VS2019并完成工作。以下是我的launch.json配置

"name": "debug",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "compile"

问题在于,调试std::cout的输出时,在任何窗口中都看不到。将externalConsole设置为true会打开一个新控制台,其中结果是预期的结果。没有新的控制台,有没有办法查看程序的输出?一段时间前,当我与Node合作时,我记得console.log()窗口中可见DEBUG CONSOLE

编辑1

我添加了下面底部4个选项卡的屏幕快照,以进行澄清。如您所见DEBUG CONSOLE没什么。最后一个图像是外部控制台。我发现大约60秒后DEBUG CONSOLE窗口显示正确的内容,然后我猜又冻结了60秒。程序应在无限循环中显示行。在修改launch.json

之后,最后的屏幕截图在另一个调试会话中进行。

enter image description here enter image description here enter image description here enter image description here enter image description here

编辑2

下面是两个示例。第一个按预期工作。第二个没有。在我的初始程序中,执行了与第二个示例类似的操作

#include <iostream>
using namespace std;
int main() {
    std::cout << "Hello world!\n";
}
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
    while(true) {
        Sleep(500);
        std::cout << "Hello world!\n";
    }
}

1 个答案:

答案 0 :(得分:2)

您可能正在查看错误的标签。应该有选项卡“问题”,“输出”,“调试控制台”和“终端”。为什么要按F5键,您处于“终端”位置。那就是启动任务执行的外壳。但是,您从std :: cout输出的程序将进入“调试输出”。