【问题标题】:Current possibilities for tracing program flow in C#?当前在 C# 中跟踪程序流的可能性?
【发布时间】:2012-01-26 16:50:09
【问题描述】:

几年前我使用Postsharp在执行过程中跟踪程序流无需手动添加跟踪语句到方法中。

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

(最好是不需要检测已构建程序集的方法。也许不可能?)

【问题讨论】:

标签: c# debugging trace program-flow


【解决方案1】:

如果您只在调试时需要此功能,可以使用 Microsoft IntelliTrace,它是 Visual Studio 2010 Ultimate 的一部分,还有 Sergey Vlasov 的 RunTime Flow。前者使您的程序运行非常缓慢。后者没试过。

【讨论】:

  • 我使用的是终极版,所以 IntelliTrace 绝对很有趣。谢谢!
  • Intellitrace 感觉有点难以导航,但非常适合,因为它在此处的所有开发人员计算机上都可用。伟大的!非常感谢! :)
【解决方案2】:

Gibraltar 使用 PostSharp,但为您提供了一个非常强大的客户端来可视化您的程序流程。您还可以比较快照、查看统计数据等。不幸的是,它不是免费的 :)

此外,大多数依赖注入框架(Unity、Windsor、Ninject 等)都提供方法拦截。在大多数情况下,您可以在 app.config 文件中定义跟踪的方法。不过,我更喜欢 PostSharp :)

【讨论】:

  • 您对直布罗陀增加检测程序的开销有任何经验吗?
  • 否 :\ 但由于 PostSharp 转换程序集这一事实,应该有最小的开销。我猜他们以异步方式使用 Tcp/UdpClient 进行数据传输。
  • 直布罗陀的概念似乎很有趣。我会确保我们会在不久的将来尝试一些合适的项目。谢谢! :)
  • 直布罗陀专为生产环境而设计 - 我们提供了有关如何在不拖累应用程序的情况下注入大量信息的指导。试一试,我们很乐意与您合作,为您的情况找到最佳解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
相关资源
最近更新 更多