Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#调试器(或任何其他工具)检查开源应用程序中GUI事件期间发生的情况?_C#_Logging_Debugging_Codebase - Fatal编程技术网

如何使用C#调试器(或任何其他工具)检查开源应用程序中GUI事件期间发生的情况?

如何使用C#调试器(或任何其他工具)检查开源应用程序中GUI事件期间发生的情况?,c#,logging,debugging,codebase,C#,Logging,Debugging,Codebase,想象一下,你得到了一个C#语言的大而好的应用程序,带有完整的源代码。因此,您需要了解在执行用户事件时执行的方法,例如按下按钮或热键等。代码库非常大,以至于您不想手动查找代码的相关部分,例如跟踪该按钮的事件处理程序 那么,有没有一种简单的自动化方法来获取从时间T开始执行的方法的日志(我按下按钮时)?您能否解释和/或提供专门针对这种情况的文章的链接?执行的方法列表称为“代码覆盖率” 有一种称为“代码覆盖率分析器”的工具,用于记录所调用的方法:这在测试代码时很有用,当您有一个或多个测试用例并且想知道测

想象一下,你得到了一个C#语言的大而好的应用程序,带有完整的源代码。因此,您需要了解在执行用户事件时执行的方法,例如按下按钮或热键等。代码库非常大,以至于您不想手动查找代码的相关部分,例如跟踪该按钮的事件处理程序


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

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

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

C#的此类工具的一个示例称为NCover:有关此工具和其他工具的链接,请参见。

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


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

我相信有人可以编写一个宏,通过编程将断点添加到所有事件处理程序中


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

其他人描述的代码覆盖率工具利用了剖析代码的能力。代码覆盖率工具的基础是,它使用应用程序探查器,并通过编程执行源代码匹配和行命中计数,作为其评测的一部分。在.NET的情况下,代码覆盖率和其他分析工具将利用。甚至是一辆卡车

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

  • 似乎具有您可能需要的控制流和日志功能
  • Sparx Systems提供了一个名为SSProfiler75.exe的评测应用程序,它支持将源代码“反向工程”到序列图中

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

是的,我认为这种“代码覆盖”确实与我正在尝试的最接近。事件处理程序是一件好事,但有时似乎还有其他处理事件的机制,例如,从应用程序中没有代码的类中进行子类化。请注意我对代码覆盖率和代码分析的区别。