代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

.NET v4的全自动应用程序跟踪

  •  2
  • JL. Hans Passant  · 技术社区  · 14 年前

    我想实现一种跟踪为.NET v4.0编写的应用程序中每一行代码的方法。

    一个例子是。如果我有以下功能。

    private bool hasValue(string value)
    {
    if(string.isnullorempty(value)
    {
     return false; 
    }
    else
    {
    return true;
    }}
    

    然后,当调用函数时,我希望详细的跟踪日志包含如下内容:

    函数called line 10 signature private bool hasValue(string value)valuesSpased hasValue(“”) 行已评估行11 if(string.isNullOrEmpty(value)valuesSpased if(string.isNullOrEmpty(“”)-评估返回true 输入第13行签名返回错误已采取返回操作。

    这个跟踪可以手动完成,但是它需要大量的工作,并且会弄脏代码。有没有办法用.NET或第三方插件自动获得这种级别的跟踪?

    谢谢你

    4 回复  |  直到 13 年前
        1
  •  1
  •   Tim Lloyd    14 年前

    虽然不能自动获得行级跟踪,但是可以使用面向方面的编程获得方法级跟踪,在方法入口/出口点的后期构建中可以编织代码。您编织的代码可以跟踪方法名、参数和值等。像postsharp这样的工具可以自动为您执行此操作:

    http://www.sharpcrafters.com/solutions/monitoring#tracing

        2
  •  4
  •   Andrew Anderson    14 年前

    我不知道有什么框架可以适用于这类事情,但我想回答几个问题。

    1. 您认为这种冗长的跟踪的效用是什么?在我看来,一些有针对性的跟踪语句足以解决大多数调试问题。

    2. 此跟踪是否将用于已部署的解决方案?如果是这样,那么在启用时可能会非常昂贵(就执行时间而言)。

    3. 您的应用程序有多大?除非它很小,否则解析由所需跟踪解决方案生成的日志文件可能比单独实现一些目标跟踪更有效。

        3
  •  1
  •   Ron MacNeil    13 年前

    Mono可以满足您的需求:

    http://www.mono-project.com/Debugging

    查找“跟踪程序执行”部分。

        4
  •  0
  •   Sergey Vlasov    13 年前

    Runtime Flow (由我开发)提供.NET 4.0应用程序的自动功能级跟踪。

    推荐文章