Visual Studio 2015“窃取”应用程序的控制台

时间:2016-01-20 19:56:20

标签: c debugging gcc visual-studio-2015 console-application

我正在使用Visual Studio 2015作为IDE开发gcc应用程序。调试器是gdb。

应用程序创建自己的窗口。当我使用DEBUG开关编译时,我需要应用程序也生成一个控制台窗口。它用于从多个线程调试和输出printf。感谢“-mwindows”开关,当我从Visual Studio外部执行应用程序时,这可以正常工作。

不幸的是,当我从Visual Studio中运行应用程序时,它似乎窃取了控制台窗口。没有产生控制台,printf的输出被重定向到输出调试窗口。

如果VS控制台实际上正确地打印了“\ n”而不是将它们从输出中剥离,那么这不是什么大问题。一切都打印在同一行,输出变得不可读。尽我所能,我无法让VS在输出调试窗口中插入换行符。我在网上搜索了很多,这个问题似乎有很好的记录,但我找不到令人满意的答案。

此时,这些解决方案中的任何一个都适用于我:

  1. 防止Visual Studio窃取应用程序的控制台窗口;
  2. 为我的所有printf添加特殊字符,以便输出调试打印换行和回车。
  3. 编辑: 理想情况下,解决方案应该是跨平台的,在某种意义上它不应该为WinAPI添加依赖。

    EDIT2: “\ t”似乎按预期工作。为什么“\ n”不起作用?我也试过“\ r \ n”无济于事。

1 个答案:

答案 0 :(得分:1)

微软Visual Studio的高级PM经理就此问题与我联系。我将其发布为"反馈"在Visual Studio中,大约四个月前(我在这里发布的时间)...

他承认了这个问题,并表示他们将尝试使用Update 3添加对外部控制台的支持。