【问题标题】:C++: cannot see output in VS Code while debuggingC++:调试时在 VS Code 中看不到输出
【发布时间】:2020-05-18 12:26:15
【问题描述】:

今天我正在尝试从 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

编辑 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";
    }
}

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我根据您的建议编辑了我的问题。请在Edit标题下再看一遍
    • @uIM7AI9S 你的 launch.json 很好。我的和你的一样,我得到了所有的控制台输出。问题似乎出在您的程序上。您是否尝试使用简单的 Hello World 进行控制台输出?您的程序似乎运行得很慢。
    • 我做了另一个编辑,其中包含 2 个示例。一种有效,一种无效
    • 我设法重现了您的问题。我不确定为什么,但问题是您使用的是'\ n'。如果你使用 std::cout
    • 似乎必须刷新流。我很确定这是一个错误,因为你不能在更长的时间内内联写东西。示例:for(auto i = 0; i &lt; 3; i++) {Sleep(500); std::cout &lt;&lt; i;}。使用std::flush 时仍然无法正常工作。我会提出另一个问题并在这里发布链接
    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 2020-05-22
    • 2020-08-25
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    相关资源
    最近更新 更多