代码之家  ›  专栏  ›  技术社区  ›  Paul Mrozowski

哪些静态分析工具可用于C?[关闭]

  •  174
  • Paul Mrozowski  · 技术社区  · 16 年前

    有哪些工具可用于针对C代码的静态分析?我知道fxcop和stylecop。还有其他人吗?我以前也遇到过不稳定,但它一直在发展,似乎是永远的-它看起来相当光滑,从我很少看到它,所以它会很好,如果它能看到白天的光。

    沿着这几行(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁、争用条件等)代码的工具似乎也有点稀缺。打字模拟赛车刚刚出现,所以我会看看。除此之外还有什么?

    对你使用过的工具的真实看法表示赞赏。

    9 回复  |  直到 7 年前
        1
  •  327
  •   community wiki 21 revs, 12 users 50% Julien Hoarau    7 年前

    代码冲突检测工具:

    质量度量工具:

    • NDepend 很好的视觉工具。用于代码度量、规则、差异、耦合和依赖性研究。
    • Nitriq 免费,可以很容易地编写自己的度量/约束,很好的可视化。 编辑:2018年2月: 下载链接现在死了。
    • RSM Squared ,基于代码源分析
    • C# Metrics ,使用C的完整分析#
    • SourceMonitor ,一个偶尔获取更新的旧工具
    • Code Metrics A Reflector 加入
    • Vil ,不支持.NET 2.0的旧工具。 编辑:2018年1月: 链接死亡

    检查样式工具:

    重复检测:

    • Simian ,基于源代码。使用多种语言。
    • CloneDR ,仅在语言边界上检测参数化克隆(还处理除C之外的许多语言)
    • Clone Detective 一个Visual Studio插件。(使用) ConQAT 内部)
    • Atomiq ,基于源代码,多种语言,酷的“轮子”可视化

    通用重构工具

        2
  •  7
  •   Patrick from NDepend team    7 年前

    工具 NDepend 被引用为 质量度量工具 但它几乎也是一个 代码违规检测 工具。 免责声明:我是该工具的开发人员之一

    使用ndepend,人们可以写 Code Rule over LINQ Queries (what we call CQLinq) . 不止 200 CQLinq code rules 默认情况下被提议。cqlinq的优势在于 编写代码规则很简单 得到 立即 结果。建议使用工具浏览匹配的代码元素。例如:

    CQLinq code rule

    除此之外,ndepend还有很多其他的 静态分析 特征。这些包括:

        3
  •  1
  •   Kris Erickson    16 年前
    • Gendarme 是一个基于开放源代码规则的静态分析器(类似于fxcop,但发现了很多不同的问题)。
    • Clone Detective 是一个很好的Visual Studio插件,可以找到重复的代码。
    • 另外,说到mono,我发现使用mono编译器进行编译的行为(如果您的代码是平台独立的,足以做到这一点,那么您无论如何都可能希望达到的目标)会发现大量未引用的变量和其他Visual Studio完全忽略的警告(即使警告级别设置为4)。
        4
  •  1
  •   LPL user462990    13 年前

    你见过吗? CAT.NET ?

    从布卢布-

    cat.net是一个二进制代码分析工具 这有助于识别 某些普遍存在的漏洞 会引起共同攻击 跨站点脚本等向量 (XSS)、SQL注入和XPath 注射。

    我用的是早期的测试版,看起来确实有一些值得一看的东西。

        5
  •  0
  •   torial    15 年前

    除了Madgnome的优秀列表之外,我还将添加一个基于命令行(但是免费的)的重复代码检测器:

    http://sourceforge.net/projects/duplo/

        6
  •  -1
  •   Alen    14 年前

    KlocWork有一个静态分析工具用于C: http://www.klocwork.com

        7
  •  -1
  •   Tom Carter    13 年前

    我找到了 Code Metrics Dependency Structure Matrix Reflector插件非常有用。

        8
  •  -1
  •   Javier Salado    13 年前

    Optimyth软件刚刚在云中启动了一个静态分析服务 www.checkinginthecloud.com . 只需安全地上传代码,运行分析并获得结果。没有麻烦。

    它支持多种语言,包括C更多信息,请访问 wwww.optimyth.com

        9
  •  -1
  •   Morten Jensen dbush    7 年前

    Axivion Bauhaus Suite 是一个静态分析工具,用C语言(以及C、C++和Java)工作。

    它提供以下功能:

    • 软件架构可视化(包括依赖项)
    • 实施体系结构规则,例如分层、子系统、调用规则
    • 克隆检测-突出显示复制和粘贴(以及修改的代码)
    • 死码检测
    • 循环检测
    • 软件度量
    • 代码样式检查

    这些特性可以一次性运行,也可以作为持续集成过程的一部分运行。当系统与源代码控制系统集成时,可以按项目或按开发人员突出显示问题。