为Microsoft Infer#(适用于C#的新静态分析器)提供动力

2020-12-15 08:39:37

Infer#为使用Microsoft C#编程语言的开发人员带来了Infer静态分析平台。借助双向诱拐分析,它已经可以检测到空指针取消引用和资源泄漏错误。基于RacerD分析的比赛条件检测也在进行中。 Infer#已用于分析Microsoft软件,包括Roslyn,DotNET SDK,ASP.NET Core和MSBuild。

它为Infer中的C#提供了新的语言前端。一个新的Infer前端绝非易事:它实际上是从源语言(在本例中为C#的.NET字节码)到Infer自己的中间语言SIL的编译器。然后,推断分析可以以最小的适应性重新用于新语言,因为它们分析SIL而不是源语言本身。

它还引入了一个新的独立于语言的JSON层来表示SIL,从而为将来其他编程语言的更多推断前端打开了大门。

尽管有多个C#开源静态分析器可供选择,但它们通常无法找到Infer能够在Java等语言中找到的深层程序间错误,例如null取消引用,数据争用或资源泄漏。或C ++。 Infer#将可扩展的,自动化的和过程间的Infer分析引入.NET平台。