我在使用Visual Studio 2015时遇到了一个问题,就是无法很好地查看Debug.WriteLn
输出中的特定内容。(在2012和2013版本中也是同样的情况。)
XCode和Eclipse都在Output
窗口顶部包含一个过滤器框。我尝试找到类似的扩展来用于Visual Studio,但没有成功。是否有一种类似的功能可以过滤输出窗口中的内容呢?
我在使用Visual Studio 2015时遇到了一个问题,就是无法很好地查看Debug.WriteLn
输出中的特定内容。(在2012和2013版本中也是同样的情况。)
XCode和Eclipse都在Output
窗口顶部包含一个过滤器框。我尝试找到类似的扩展来用于Visual Studio,但没有成功。是否有一种类似的功能可以过滤输出窗口中的内容呢?
在 Visual Studio 2017 中(我认为其他版本也有),我发现一个事情:
工具 | 选项 | 调试 | 通用 > 将所有输出窗口文本重定向到 "立即窗口"
这样,您就可以只在立即窗口中查看程序的 Debug.Write
X
输出,而将所有其他无用信息留在输出窗口中,并且可以将输出窗口关闭。
如果有必要,我仍然可以查看输出窗口中的无用信息;它并没有被抑制。它只是不会出现在立即窗口中。
我将小的立即窗口停靠在底部,我认为这很好。
我认为这很好,因为当所有垃圾都在输出窗口中出现时,我真的没能关注到输出,就像服务条款协议一样(也就是说,几乎没有),所以宝宝和洗澡水一起被扔掉了。但现在我实际上看到需要注意的程序调试输出。
我认为微软应该将输出窗口下拉框扩展到包括 FetFrumos 在他的答案中指出的所有类别,以便开发人员可以将其设置为“程序输出”。我认为这将是一个不错的改进。
Visual Studio中的各种服务都会向输出窗口写入内容,因此内置了基于来源的过滤器。您通常可以选择来源,例如“构建输出”、“测试发现”、“常规”、“调试”等。
Debug.Write调用被VS拦截并在输出窗口中显示文本,但没有内置过滤器。
我能想到3种解决方法:
(*)如果您选择此路线,请注意,Debug.Write只是一个跟踪,当您附加VS调试器时,它将将自己添加为跟踪列表。DbgView也是一样。但是,当您分离时,它不会删除侦听器,消息将丢失。