【问题标题】:Print to console in visual studio 2005在 Visual Studio 2005 中打印到控制台
【发布时间】:2010-11-01 20:07:14
【问题描述】:

我想将调试语句打印到 Visual Studio 2005 中的输出窗口(或我能看到的任何其他地方)。我看到的建议说要使用

OutputDebugString("message");

并确保我有

选项 -> 调试 -> 将所有输出窗口文本重定向到立即窗口检查

虽然代码构建正常,但我没有看到任何输出,这是什么窍门?

【问题讨论】:

  • 您是否验证过调试代码确实被命中,例如通过在上面设置一个断点?
  • 你需要使用Debug命令,而不是Run。
  • Alex:我已经按 F5 开始调试了。
  • Steve:我目前也无法设置断点,我在这里创建了一个具有更多背景的新问题(它也可能与这个问题有关):stackoverflow.com/questions/4068558/…跨度>

标签: c++ visual-studio debugging visual-studio-2005


【解决方案1】:

如果您使用的是 OutputDebugString,您还可以使用 SysInternal's DebugView 查看输出。在您解决 Visual Studio 调试问题之前,DebugView 应该可以解决问题。

【讨论】:

  • 完美运行!我也不能调试器工作,所以这至少可以让我看到发生了什么。
【解决方案2】:

您必须首先在调试模式下运行。

然后使用以下代码(来自 MSDN):

class Test{
static void Main()
{
   Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
   Debug.AutoFlush = true;
   Debug.Indent();
   Debug.WriteLine("Entering Main");
   Console.WriteLine("Hello World.");
   Debug.WriteLine("Exiting Main"); 
   Debug.Unindent();
}}

您将在“输出”窗口中看到所有内容。您可能必须转到 View->Output 菜单才能使该窗口在 IDE 中可见。

【讨论】:

  • 对不起,我应该提到我使用的是 c++。我猜这是 C#?
【解决方案3】:

Alt-2 或 View->Output 打开输出窗口。默认情况下,它应该已经打开,通常位于 IDE 底部的选项卡式窗口中(但这取决于您的自定义布局),并标有“输出”。

输出不定向到控制台,您需要为此输出到stdout并为其创建一个控制台窗口。

【讨论】:

  • 我打开了输出窗口,下拉框设置为调试。我看到正在加载的模块和来自 IExplorer(我正在附加的进程)的消息,但没有来自 OutputDebugString 的输出
  • 如果包含输出调用的进程不是你所附加的进程,你为什么期望得到输出!?还是我误解了?它对我有用,尽管输出很容易在所有其他消息中丢失。
【解决方案4】:

如果您的代码确实达到了该行,那么它可能:

你VS的输出窗口中的RMB:

检查是否有“程序输出”未选中,如果是,请检查!!!

虽然此控件存在于输出窗口的上下文菜单中,但它确实会在您重定向时影响即时窗口中的输出。

【讨论】:

  • 你可以试试切换它吗?好像你的调试器有问题,处于不稳定状态...
  • 试过了,没用。调试器的启动方式似乎确实存在问题。我也不能打任何断点。它肯定会启动调试器,因为菜单项 Stop Debugging 变得可用。
猜你喜欢
  • 1970-01-01
  • 2019-07-06
  • 2013-05-22
  • 2016-11-12
  • 2020-05-20
  • 2013-01-27
  • 2010-09-05
  • 2016-09-21
  • 1970-01-01
相关资源
最近更新 更多