使用 Frama-c 分析带有 CMake 构建基础设施的项目

Use Frama-c to analyze a project with CMake build infrastructure

我需要使用frama-c值分析插件来分析一些项目。这些项目使用 CMake 构建基础结构作为它们的构建系统。

我已经使用frama-c 分别分析了每个文件。这样,有关入口点的信息将丢失。更准确地说,frama-c 需要不包含 "main" 函数的文件的入口点,因此覆盖所有函数并从项目的单个文件中选择最佳入口点具有挑战性。

我的问题是,有没有一种方法可以 运行 将整个项目作为一个整体(而不是逐个文件)进行 frama-c?

Frama-C 在其命令行上接受多个文件。如果预处理器的配置(选项 -cpp-extra-args,特别用于包含)在所有文件中都是相同的。

如果您需要为不同的文件设置不同的预处理程序,您应该单独预处理每个文件(仅 cpp,没有 Frama-C),并将每个结果保存为 .i 文件。然后,您可以同时将所有这些预处理文件提供给 Frama-C。通常,第一个操作可以通过调整构建过程来完成。