Debug.WriteLine不起作用

时间:2009-09-02 22:18:02

标签: vb.net debugging

在过去,也许是我现在使用的2008之前的Visual Studio版本,我会在我的VB.NET代码中做这样的事情:

System.Diagnostics.Debug.WriteLine("Message")

..输出将转到输出窗口。

现在没有。首先必须显示某些东西。

如果这涉及“附加调试器”,请解释如何执行此操作。在我看来,它应该没有太多的大惊小怪。

这是一个实时解释问题并向您展示我所有设置的视频:

http://screencast.com/t/YQnPb0mJcs

我正在使用Visual Studio 2008。

13 个答案:

答案 0 :(得分:22)

检查工具 - >下是否选中“将所有输出窗口文本重定向到立即窗口”。选项 - >调试 - >一般

或者,您也可以使用Console.WriteLine()函数。

答案 1 :(得分:15)

所有好建议。我注意到我没有看到这个提示,所以我会说:在你的app.config文件中,确保你的跟踪中没有<clear/>元素听众。

您将有效地清除跟踪侦听器列表,包括用于Debug语句的默认跟踪侦听器。

以下是app.config文件中的内容:

<system.diagnostics>
    <trace>
      <listeners>
          <!-- This next line is the troublemaker.  It looks so innocent -->
          <clear/>
      </listeners>
    </trace>
  </system.diagnostics>

如果您想在app.config文件中为跟踪侦听器设置占位符,则应使用以下内容:

<system.diagnostics>
    <trace>
      <listeners>
      </listeners>
    </trace>
  </system.diagnostics>

答案 2 :(得分:14)

在输出窗口中单击鼠标右键,确保选中“程序输出”。

答案 3 :(得分:13)

你肯定定义了DEBUG常量吗?检查项目属性 - &gt; 编译 - &gt; 高级编译选项(DEBUG常量的复选框。如果未选中,则不会执行Debug.XXX语句。)

答案 4 :(得分:11)

如果使用Debug配置而不是Release配置编译应用程序,它应该转到输出窗口。但不是Debug.WriteLine(),而是使用Trace.WriteLine()(可选择附加ConsoleTraceListener)。

答案 5 :(得分:7)

尝试或检查的一些额外想法:

  • 在Debug.WriteLine之前放置一个断点,看看System.Diagnostics.Trace.Listeners集合中的内容。你应该看到DefaultTraceListener。如果你没有看到任何东西,那么没有人在听,那就是问题。
  • 是否有可能在配置文件或代码中的某处清除/修改跟踪侦听器?
  • 您是否在Visual Studio中安装了任何包或加载项?或使用第三方库?
  • 你能看到VS以外的调试消息吗?有一个名为DebugView的SysInternals应用程序可监视并显示系统中的调试输出。运行该工具,然后运行您的应用程序。您应该在DebugView中看到您的调试消息。至少你会知道你的应用程序正在输出调试消息,但VS似乎没有正在监听。
  • 您是否浏览了输出窗口的内容,以查看是否报告了任何异常或错误。你的调试输出不存在,但可能会有一些东西可以提供一些线索。

答案 6 :(得分:5)

检查立即窗口。您可能将所有输出重定向到它。

答案 7 :(得分:2)

对我来说,这是Debug.WriteLine在立即窗口中显示的事实,而不是输出。我默认安装Visual Studio 2013甚至没有显示打开立即窗口的选项,因此您必须执行以下操作:

Select Tools → Customize 
Commands Tab
View | Other Windows menu bar dropdown
Add Command...
The Immediate option is in the Debug section.

一旦你有了Ok,那你就可以进入菜单查看其他Windows 并选择立即窗口,嘿presto所有的调试输出都可以看到

不幸的是,对我而言,它还显示了我在项目中没有发现的大约50个错误...也许我会再次将其关闭: - )

答案 8 :(得分:1)

它发生了。当我在Visual Studio 2010 Web开发人员Express Edition上开发ASP.NET MVC应用程序时,我有类似的症状。执行不会在断点处中断。执行System.Diagnostic.Debug.Writeline时没有输出(即使它在调试开始时运行),web.config没有任何问题。

我的解决方法是: - 转到项目属性 - &gt;卷筒纸 - 在Debugger部分中,检查ASP.NET选项

希望这可以帮助遇到这个帖子的人。

答案 9 :(得分:1)

我在Visual Studio 2013和MS单元测试中遇到了类似的问题。右键单击单元测试方法并选择Run Tests,任何Debug.WriteLine调用都不会显示在立即窗口或调试输出窗口中。即使我正在测试的库和单元测试项目本身都在项目属性的构建部分中进行了DEBUG条件检查。

为了让Debug.WriteLine语句通过右键单击并选择Debug Tests来输出运行单元测试所需的任何内容。只有这样我才能将调试输出写入调试输出窗口。

答案 10 :(得分:1)

我对ASP.NET应用程序遇到了同样的问题,我发现我的Web.Config有以下几行:

<system.web>
    <trace enabled="false"/>
</system.web>

只需将其更改为true,我就会开始在Debug.WriteLine窗口中看到Output

答案 11 :(得分:1)

我在Visual Studio Express 2010中遇到了同样的问题。我在调试计算机上安装了新设备并且没有任何建议有效。我最终使用NLog并记录到文本文件作为解决方法。

答案 12 :(得分:0)

确保按 F5 启动调试模式(不是 Ctr + F5 )。

  

F5 开始调试

     

CTRL + F5 在没有调试的情况下启动