C++:调试时无法在 VS Code 中看到输出
C++: cannot see output in VS Code while debugging
今天,我正在尝试从 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
的输出在任何 window 中都看不到。将 externalConsole
设置为 true
会打开一个新的控制台,其中的结果是预期的。有没有办法在没有新控制台的情况下查看我的程序的输出?当我前段时间使用 Node 时,我记得 console.log()
在 DEBUG CONSOLE
window
中可见
编辑 1
我在下面添加了底部 4 个选项卡的屏幕截图以进行说明。如您所见,DEBUG CONSOLE
什么也没产生。最后一张图片是外部控制台。我发现在 ~ 60 秒后 DEBUG CONSOLE
window 显示正确的东西,然后我猜又冻结了 ~ 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";
}
}
您可能看错了标签。应该有选项卡 "Problems"、"Output"、"Debug Console" 和 "Terminal"。为什么你按 F5 你在 "Terminal"。那是执行启动任务的 shell。然而,您从 std::cout 输出的程序会进入 "Debug Output".
今天,我正在尝试从 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
的输出在任何 window 中都看不到。将 externalConsole
设置为 true
会打开一个新的控制台,其中的结果是预期的。有没有办法在没有新控制台的情况下查看我的程序的输出?当我前段时间使用 Node 时,我记得 console.log()
在 DEBUG CONSOLE
window
编辑 1
我在下面添加了底部 4 个选项卡的屏幕截图以进行说明。如您所见,DEBUG CONSOLE
什么也没产生。最后一张图片是外部控制台。我发现在 ~ 60 秒后 DEBUG CONSOLE
window 显示正确的东西,然后我猜又冻结了 ~ 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";
}
}
您可能看错了标签。应该有选项卡 "Problems"、"Output"、"Debug Console" 和 "Terminal"。为什么你按 F5 你在 "Terminal"。那是执行启动任务的 shell。然而,您从 std::cout 输出的程序会进入 "Debug Output".