本文翻译自官方文档 pclp-sca
1、概述
Vector Informatik GmbH 开发的静态分析工具受到全球几乎所有行业成千上万家企业的信赖。我们的用户群中有很大一部分利用我们的工具来开发嵌入式和安全关键型环境的应用程序。长期以来,我们通过实施嵌入式编译器使用的语言扩展、支持各种 MISRA 编码标准以及增加诊断功能来解决嵌入式开发人员的具体问题,为这一群体提供支持。 作为我们对嵌入式和安全关键型开发人员社区持续承诺的一部分,我们为在此类环境中使用 PC-lint Plus 编写了本指南。
本指南提供
最佳实践清单,遵循该清单将有助于最大限度地正确使用 PC-lint Plus,使您意识到潜在问题的领域、避免或检测异常操作的步骤,以及支持稳健套料环境的策略建议。
讨论环境因素以及 PC-lint Plus 在运行时可能受到的环境影响。
2、在安全关键应用中使用 PC-lint Plus 的最佳实践
2.1 确保配置正确
开发一个包含库头文件的简短测试程序,并使用所依赖的编译器特定功能。在该程序上运行 PC-lint Plus,以确保其产生正确的结果,并确保在处理库头文件时不会产生错误。
在使用新的库头文件之前,创建一个包含这些头文件的空 C 或 C++ 文件,并在该文件上运行 PC-lint Plus。在使用这些库头文件的任何生产代码上运行 PC-lint Plus 之前,确保库头文件产生的任何错误都已得到解决。
2.2 针对特定目的验证工具
我们建议使用测试线束来确保 PC-lint 满足您的需求和期望,从而建立对 PC-lint Plus 配置的信心,并针对特定目的验证其功能。
例如,如果您依赖 PC-lint Plus 来检测特定的 MISRA 违规行为,则应 1) 查看我们的文档以确定所声称的支持级别;2) 查看并理解与规则支持声明相关的任何文档注意事项;3) 创建包含已知 MISRA 规则违规行为的测试,并验证 PC-lint Plus 是否使用您的配置生成预期的相应诊断。
应定期运行此类测试,包括在使用 PC-lint Plus 的新设施、更改配置和升级 PC-lint Plus 时。保持此类测试有助于 "增强使用信心",提供正常运行的证据,并快速识别潜在问题。
2.3 了解选项的处理方式及其影响范围
PC-lint Plus 按选项出现的顺序进行处理,并允许在命令行、lint 配置文件、LINT 环境变量以及源代码中的 lint 注释中提供选项。虽然这提供了极大的灵活性,但了解选项的范围、在不同阶段使用选项的影响以及选项之间的相互作用(包括选项如何撤销之前的选项)也很重要。
由于选项是按顺序处理的,因此要确保在处理主配置之前,先处理受这些选项影响的源代码。这通常需要一个或多个包含所需选项的文件,以及一个包含要处理的源文件名称的单独文件。然后在列表文件之前的命令行中指定配置文件。
需要记住的是,在源代码处理前指定的许多选项,都可以通过源代码模块中的 lint 注释来覆盖(源代码模块中的选项范围仅限于出现这些选项的模块)。
2.4 了解选项对诊断信息传递的直接影响
所有选项都会以某种方式影响 PC-lint Plus 的行为,因此可能会影响分析结果。因此,在使用选项前应了解其功能。有些选项的主要目的是直接影响诊断信息的发布。抑制选项
是最明显的例子,因为它们的存在完全是为了控制诊断结果的发送。还有其他一些选项可以直接影响诊断程序的行为,包括
控制哪些文件或文件区域被视为库的选项,包括 -libh、+libh、-libm、+libm、-libdir、+libdir、-libr