如何在Visual Studio 2012+中过滤输出?

fra*_*ish 18 visual-studio visual-studio-debugging

Debug.WriteLn在Visual Studio 2015中检查输出中的特定内容时遇到问题.(2012和2013版也是如此.)

XCode和Eclipse都在Output窗口顶部包含一个过滤器框.我试图为Visual Studio找到类似的扩展,但我没有运气.有没有办法有类似的功能并过滤输出窗口?

Fet*_*mos 35

我用这个方法:

只需右键单击Window,打开Debug - Output窗口即可.

在此输入图像描述

您可以根据需要选中/取消选中.

  • 谢谢!这非常有帮助. (3认同)

Bog*_*SFT 7

VS中的各种服务写入输出窗口,因此存在基于源的内置过滤器.您通常可以选择源代码,例如"构建输出","测试发现","常规","调试"等.

Debug.Write调用被VS拦截,文本最终在"输出"窗口中,但在内置过滤中没有.

我可以想到3种方法:

  1. 使用DbgView拦截Debug.Write消息,而不是让VS拦截它们.DbgView具有非常强大的过滤和着色功能*
  2. 尝试使用此扩展,根据正则表达式为输出着色
  3. 写下你自己的扩展(这并不困难!)

(*)如果沿着这条路走下去,请注意Debug.Write只是一个跟踪,当你连接VS调试器时,它会将自己添加为跟踪列表器.DbgView也是如此.但是当你分离时,它不会删除监听器,并且消息将丢失.


Gra*_*Ant 7

多年来我一直想过滤 Visual Studio 输出。最终我决定编写一个扩展来做到这一点。如果您有兴趣,可以在niahtextfilter.com上查看。

这是它的作用的一个想法:

Niah 文本过滤器过滤一些调试输出

  • 这正是我想要的。4年后。令人难以置信的是微软还没有包含这个。 (4认同)

tod*_*dmo 6

我在VS 2017中发现的一件事(我认为它也在其他版本中)是:

Tools | Options | Debugging | General > Redirect all Output Window text to the Immediate Window

这为您提供Debug.WriteX了即时窗口中程序的输出,并将所有其他垃圾留在输出窗口中,您可以将其关闭.

如果我出于某种原因需要,我仍然可以看看输出窗口中的垃圾; 它没有被压制.它只是没有进入即时窗口.

而我只是将刚出现的小窗口停在底部.

我认为这很好,因为输出窗口中出现了所有垃圾,我真的没有比使用条款协议更加关注输出(也就是说,几乎没有),所以宝贝被洗澡水甩了出来.但是现在我实际上看到了一些程序调试输出,需要注意.

恕我直言Microsoft应该扩展输出窗口下拉框以包括FetFrumos在其答案中指出的所有类别,因此开发人员可以将其设置为"程序输出".我认为这将是一个很好的改进.