2011-12-23 36 views
3

我几年前使用Postsharp跟踪程序流程在执行过程中而不需要手动添加跟踪语句的方法。在C#中跟踪程序流的当前可能性?

是否有任何其他新方法跟踪执行以类似的方式调试输出?

(最好的方式,不需要仪器内置组件,也许不可能的?)

+0

根据我的理解,C#_always_中的[aspect-orientedated programming](http://en.wikipedia.org/wiki/Aspect-oriented_programming)需要对编译代码进行后期处理。 –

回答

3

如果您只希望在调试时使用此功能,那么Microsoft的IntelliTrace是Visual Studio 2010 Ultimate的一部分,并且有Sergey Vlasov的RunTime Flow。前者使你的程序运行非常缓慢。没有尝试过后者。

+0

我使用终极版,所以IntelliTrace绝对有趣。谢谢! –

+0

Intellitrace感觉有点难以浏览,但完全适合,因为它在这里的所有开发人员计算机上都可用。大! 非常感谢! :) –

3

Gibraltar使用PostSharp,但为您提供了一个非常强大的客户端,可视化程序流程。您还可以比较快照,查看统计数据等。不幸的是它不是免费的:)而且,大多数依赖注入框架(Unity,Windsor,Ninject,...)提供方法拦截。在大多数情况下,您可以在app.config文件中定义跟踪方法。但是,我更喜欢PostSharp :)

+0

直布罗陀在仪表计划中增加了多少开销吗? –

+0

否:\但由于事实,即PostSharp转换程序集,应该有一个最小的开销。我想他们以异步方式使用Tcp/UdpClient进行数据传输。 – Matthias

+0

直布罗陀的概念似乎很有趣。我会确保我们会在不久的将来尝试一些合适的项目。谢谢! :) –