1

想象一下,你得到了一个用 C# 编写的很棒的应用程序,它有完整的源代码。因此,您想弄清楚当您执行用户事件时会执行哪些方法,例如按下按钮或按下热键或其他任何方法。代码库太大了,以至于您不想手动查找代码的相关部分,例如跟踪该按钮的事件处理程序。

那么,是否有一种简单的自动化方法来获取某种从时间 T(即我按下按钮时)开始执行的方法的日志?您能否解释和/或提供专门针对这种情况的文章的链接?

4

4 回答 4

2

其他人描述的代码覆盖工具利用了分析代码的能力。代码覆盖工具的基础是它使用应用程序分析器,并且被编程为执行源代码匹配和行命中计数作为其分析的一部分。对于 .NET,代码覆盖率和其他分析工具将利用.NET Profiling API。甚至是NCover。

存在其他工具可以为您提供更多您正在寻找的日志活动,而不是行命中计数。您甚至可以编写自己的分析应用程序,该应用程序可能会记录到一个特殊的 XML 文件,然后对其进行数字签名、时间戳并将其上传到服务器进程。

  • AQtime似乎具有您可能正在寻找的控制流和日志记录功能。
  • Sparx Systems 的Enterprise Architect包括一个名为 SSProfiler75.exe 的分析应用程序,它能够将源代码“逆向工程”成序列图。

考虑寻找代码分析工具,而不仅仅是代码覆盖工具,这是分析器的一个用例。

于 2010-07-23T16:16:41.610 回答
1

执行的方法列表称为“代码覆盖率”。

有一些称为“代码覆盖分析器”的工具会记录调用的方法:这在测试代码时很有用,当您有一个或多个测试用例并想知道测试“覆盖”了哪些方法时。

此类 C# 工具的一个示例称为 NCover:有关此工具和其他工具的链接,请参阅C#/.net 的代码覆盖率

于 2009-11-28T01:23:21.390 回答
0

您可以使用 C# Visual Studio Express 并在代码中设置断点,然后从 IDE 使用分步调试。您还可以通过在设计器模式下双击按钮来了解按下按钮时执行的代码。它直接带您进入相关代码,您可以在此处放置一个断点,然后运行应用程序。

没有规定不能使用 VS 调试开源应用程序,即使 VS 是封闭源代码。而且它是免费的,为什么不呢?

于 2009-11-28T01:25:11.163 回答
0

我敢肯定有人可以编写一个宏,以编程方式向所有事件处理程序添加断点!

visual studio 2010 有方法层次视图,非常好,但在 2008 年不可用

于 2009-11-28T01:29:55.683 回答