C++:调试时无法在 VS Code 中看到输出

标签 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

后在另一个调试 session 中拍摄的

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

编辑2

下面是 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";
    }
}

最佳答案

您可能查看了错误的选项卡。应该有“问题”、“输出”、“调试控制台”和“终端”选项卡。为什么按 F5 你就进入了“终端”。这是执行启动任务的 shell。然而,来自 std::cout 的程序输出会进入“调试输出”。

关于C++:调试时无法在 VS Code 中看到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61869567/

相关文章:

c++ - 使用qmake开发跨平台C++静态库(Mac上通过Qt creator IDE)

c++ - 使用 QMovie 在 GIF 动画和 Qt 中的信号/槽之间切换

visual-studio-code - VS Code 触摸板滚动移动光标而不是页面

c++ - VSCode c++ task.json包含路径和库

node.js - vscode 调试 ES6 应用

configuration - $cfg ['Servers' ][$i] ['users' ] ... 不行

eclipse - 使用跨平台库在 Eclipse 中设置跨平台 C++ 项目

c++ - 什么时候会在 QTableWidget 中触发 cellChanged 信号?

c++处理来自输入文件的数据会创建无限循环

javascript - 无法从旧的 jscalendar 干净地升级到新的 jscal2 版本