【问题标题】:How to compare execution paths in .NET?如何比较 .NET 中的执行路径?
【发布时间】:2010-02-12 06:30:01
【问题描述】:

我正在调试 .NET Framework 源代码以查找 a bug in my application。我有两个类似的代码输入,一个显示错误,另一个没有。然而,按照代码路径进入 .NET 源代码是相当复杂的。

我想要的是一个工具,它可以对两个输入都执行并比较结果以查看采用了哪些代码路径、内部值有何不同等...

这适用于 .NET 吗?

【问题讨论】:

  • @Mitch:不,我几乎没有使用过,所以我不太熟悉它们的功能。这会给我这个级别的细节吗?我对内存或性能信息不感兴趣。

标签: c# .net execution


【解决方案1】:

你可以试试nCover。它可以向您显示代码覆盖率信息,这可能会帮助您确定发生错误时采用了哪些分支。

【讨论】:

  • @Mark:只是尝试一下,但它似乎没有选择 .NET Framework 源代码。我需要能够看到 MS 的代码在做什么。除非我错过了一个选项?
【解决方案2】:

您可以尝试JetBrains DotTrace 并忽略时间安排。他们提供 30 天免费试用下载。

【讨论】:

    【解决方案3】:

    按照 Mitch 的建议,查看分析器,也许是 ANTS。它会给你所有的方法调用,这样你就可以看到正在发生的一切。

    【讨论】:

      【解决方案4】:

      SD C# Test Coverage Tool 将显示如果您单独运行测试用例,将执行哪些代码。

      如果您要求,它还会计算每种情况下涵盖的代码之间的差异。这种差异将是一个测试执行的代码,而另一个不执行。可能这就是您的问题所在。

      它不会帮助您获得 .NET 框架的源代码。

      【讨论】:

        【解决方案5】:

        尝试使用分析器:

        如果你有 Visual Studio 2008 的企业版(或其他版本)

        【讨论】:

          【解决方案6】:

          免费试用EQATEC Tracer - 它几乎完全符合您的要求。

          它将“跟踪代码”注入到您的应用程序中,该代码将在运行时准确地告诉您执行了哪些方法以及参数是什么。有一些复杂的方法可以微调要跟踪的方法,因为“全部”通常太多了,但是如果您真的想要,只需单击一下即可打开所有方法的跟踪。

          看看这里的主要功能:http://www.eqatec.com/tools/tracer/features

          -在这里获取:http://www.eqatec.com/tools/tracer

          编辑:抱歉,我错过了必须深入研究实际 .NET 框架代码的部分。跟踪器无法轻松做到这一点。

          【讨论】:

            猜你喜欢
            • 2021-06-27
            • 1970-01-01
            • 1970-01-01
            • 2011-01-17
            • 1970-01-01
            • 1970-01-01
            • 2012-01-20
            • 1970-01-01
            相关资源
            最近更新 更多