代码之家  ›  专栏  ›  技术社区  ›  Thi

C的夹板代码分析器[关闭]

  •  3
  • Thi  · 技术社区  · 15 年前

    我们计划使用Splint作为我们的C代码库的代码分析器。但我们从来没有尝试过夹板工具之前,所以我们希望你的意见对它的好处,利弊。

    5 回复  |  直到 15 年前
        1
  •  3
  •   Gabriel Devillers    7 年前

    阅读 this blog post these slides 快速了解它能为您做些什么。

        2
  •  10
  •   waffleman    15 年前
        3
  •  3
  •   mcandre    14 年前

    Splint 擅长于使代码更习惯化(因此更易于阅读,便于各种编译器解析,更易于移植,更易于重构)。Splint可以发现一些细微的错误,比如int和float之间的隐式类型转换。Splint追踪内存泄漏和其他安全漏洞。

    splint hello.c .

        4
  •  1
  •   Praveen S    15 年前

    正如华夫曼所说,静态分析仪确实会产生很多假警报。我发现预防比麻雀更能发出警报。这两个是我们用来进行静态分析的。

    bar (char **output) 
    {
      *output = malloc(100);
    }
    foo()
    {
      char *output=NULL;
      bar(&output)   
    }
    

    在函数栏中,它会报告指针输出的内存泄漏。在函数foo中,当调用函数栏时,它会报告NULL取消引用。但不管怎样,在100个假警报中找到一个真警报还是一个选择。

    因此,我们可以发现内存泄漏,这可能会错过代码审查。防止许可证是昂贵的,一旦报警被标记为假,它不会出现在随后的分析中。因此,你必须找出夹板是否也有同样的作用。

        5
  •  0
  •   doron    15 年前

    该工具查找可能是错误的模式。优点是该工具可能会发现潜在的bug,缺点是它也可能会发现大量的误报。