我希望展示代码库的可视化,它可以显示过于复杂和相互交织的区域。
我知道 clang 是什么,但我不确定在这种情况下它是否能给我想要的东西。
我希望展示代码库的可视化,它可以显示过于复杂和相互交织的区域。
我知道 clang 是什么,但我不确定在这种情况下它是否能给我想要的东西。
AnalysisTool:我知道它是一个 clang 包装器,但它也提供依赖关系图。
AnalysisTool 最初是为了两个主要目的而创建的:提供易于使用的 Clang 静态分析器可执行二进制文件,以及通过提供一些额外的检查来自定义 Clang。当 Clang 静态分析器处于早期阶段时,开发人员尝试它的唯一选择是检查 LLVM 和 Clang 的最新源代码,编译它,然后从命令行使用分析器。AnalysisTool 提供了一个易于使用的 GUI 界面,无需触摸 Clang 源代码。它还提供了自动更新,让 AT 用户可以随时使用最新的 Clang 静态分析器。
该工具将计算 C/C++/Objective C 代码的循环复杂度,而无需关心头文件和预处理器。因此,该工具实际上是计算代码“看起来”的复杂程度,而不是代码的“复杂程度”。
人们将需要这个工具,因为通常很难使用类似的工具来正确获取所有包含文件夹和文件,但在涉及圈复杂度时,我们并不真正需要那种准确性。
这是我知道的仅有的两个工具,希望对您有所帮助。
我们的源代码搜索引擎提供了搜索多种语言的大量源代码的能力,使用每种语言的代码结构来指导搜索并最大限度地减少误报匹配。
作为其索引过程的副作用,它计算文件的各种复杂性指标(Halstead、McCabe)并将其写入 XML 文件,您可以以任何您喜欢的方式处理/显示。
它具有 C 和 C++ 的语言前端;他们中的任何一个都应该能够足够好地处理目标 C,以便 SCSE 操作员,并且为了 OP 的目的,计算这样的复杂性指标。可下载版本包含 C 前端。
2019 年 6 月编辑:它现在有一个 Objective C 前端。