Sam*_*Sam 11 .net recursion code-analysis static-code-analysis
我在本周末遇到了一个问题,其中方法1调用方法2,调用方法3捕获异常,并在异常处理方法1中再次调用...
M1 - > M2 - > M3 - > M1 ....
一旦问题发生,问题变得明显且易于修复.
有谁知道在.NET应用程序中检测这样的问题的工具?
要做到这一点,你需要一个基于C#应用程序的全局调用图,使用C#语义进行计算,这相当于一个点到分析,可以说包括它调用的库.使用这样的调用图,您可以枚举其中的周期,这些将是要检查的候选者.
我不知道你会在哪里获得一个为C#计算这样一个全局调用图的工具,现成的.
您可以使用简单的代码扫描技术来估算它.对于每个方法M,提取它包含的一组调用作为标识符I.大多数它们将显示为看起来像标识符的语法( 在此步骤之后,您有M_i - > I.您可以将其构建为(外部保守)基本调用图形,然后计算传递闭包.有了这个,你有一个带周期的近似调用图,你可以进行循环分析.这可以通过名称和其他情况传递质量方法,但它可能已经足够了.