打印“*”时退出 VSCode 中的调试 C++ 应用程序
Debugging c++ application in VSCode exits when "*" is printed
我正在使用以下应用程序
#include <iostream>
using namespace std;
void print(char* s)
{
cout << s << endl;
}
int main(int argc, char* argv[])
{
print("a");
print("b");
print("***");
print("c");
print("d");
}
当我 运行 使用 VSCode 下的调试器(使用“本机调试”扩展)时,它从未通过第二次打印,这是我的输出:
a
b
它永远不会通过 print("***)
,即使我在该行之后放置一个断点它也不会到达它。
如果我注释掉 print("***")
,应用程序将以正确的输出结束:
a
b
c
d
我唯一设法弄清楚的是存在并发出打印“*”字符,如果我将其替换为任何其他字符,一切正常。为什么我会看到此行为?如何在不更改代码的情况下解决此问题?
@molbdnilo,似乎是正确的。它看起来像是“本机调试”扩展中的错误。使用另一个扩展时问题不会重现(我尝试使用 Microsoft 的“C/C++”扩展)
我正在使用以下应用程序
#include <iostream>
using namespace std;
void print(char* s)
{
cout << s << endl;
}
int main(int argc, char* argv[])
{
print("a");
print("b");
print("***");
print("c");
print("d");
}
当我 运行 使用 VSCode 下的调试器(使用“本机调试”扩展)时,它从未通过第二次打印,这是我的输出:
a
b
它永远不会通过 print("***)
,即使我在该行之后放置一个断点它也不会到达它。
如果我注释掉 print("***")
,应用程序将以正确的输出结束:
a
b
c
d
我唯一设法弄清楚的是存在并发出打印“*”字符,如果我将其替换为任何其他字符,一切正常。为什么我会看到此行为?如何在不更改代码的情况下解决此问题?
@molbdnilo,似乎是正确的。它看起来像是“本机调试”扩展中的错误。使用另一个扩展时问题不会重现(我尝试使用 Microsoft 的“C/C++”扩展)