Gimpel Software推出C和C ++的首选静态分析工具 PC-lint Plus,不再维护PC-lint/FlexeLint。

Gimpel Software已不再维护PC-lint/FlexeLint版本9,最终更新是2014年发布的版本9.00L。Gimpel Software在2018年底之前为PC-lint/FlexeLint提供技术支持。

Gimpel Software已推出新产品PC-lint Plus——C和C ++的首选静态分析工具。

简单介绍一下PC-lint Plus:

       PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷。与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序。PC-lint Plus采用各种机制,包括数据流分析,数值跟踪,读写分析,强类型检查,功能语义验证和许多其他技术,来提供对单个文件和整个项目强大而全面的分析。


PC-lint Plus可在Windows,Linux和macOS上运行,并可配置为分析几乎任何平台的代码

      dacd08022532499ea3aedcce046d288bo.jpg


适用平台

Windows 7/8/10(32位和64位),Linux(64位)和macOS。PC-lint Plus可以分析几乎任何平台的C / C ++源代码。

编码标准

PC-lint Plus可以检查违反内部代码指南的情况,以及分析是否符合MISRA等行业标准。数以千计的高度可配置的消息可被启动来用于支持许多不同的代码指南,例如控制结构要使用大括号,条件表达式中的赋值规则,明确说明运算符优先级等等。可以在可重用配置文件中指定所需信息的集合,以便在项目和团队之间分享。

MISRA支持

PC-lint Plus为MISRA标准提供行业领先的支持,包括MISRA C 2012,MISRA C 2004和MISRA C ++ 2008及其附录和正误表。使用随PC-lint Plus一起的配置文件可以快速启用MISRA检查。可以启用和禁用单个规则,并且可以逐个控制信息。

信息抑制

PC-lint Plus包含多种灵活的方法来控制信息抑制,即是否会发出或忽略特定的信息实例。可以在每个文件,每个函数,每个语句的基础上全局启用或抑制信息,具体取决于信息所引用的类,结构,变量,函数或宏的名称,或者在单个行上。PC-lint Plus可以将第三方或库源代码与项目的其余部分区分开来,并且可以对这些代码应用单独的抑制策略。

  • 最简单的抑制选项,+e#和-e#,在遇到它们之后的所有地方启用或禁用信息#。

  • 通过添加// lint!e#形式的注释来暂时禁用信息#。

  • 提及特定变量,类,结构或函数的消息可以使用-esym或+esym来抑制或启用,例如-esym(#,name)会在消息的特定实例提到name时禁止信息#。

  • 提到其他文本的信息可以使用-estring和+estring来抑制或启用。

  • emacro选项在指定宏的扩展中启用或禁用信息。

  • lint注释中的各种抑制可以影响下一个或封闭的语句,声明或表达式。

文档和支持

PC-lint Plus与PDF格式的手册一起提供下载,手册描述了PC-lint Plus的配置,操作,选项和信息。介绍和安装部分可帮助您快速入门。每个选项和信息都有详细描述,并且很容易找到参考表和目录。版本历史记录部分记录了版本之间的更改。

源代码安全

PC-lint Plus在您的开发人员工作站或您自己的服务器上本地运行。它不连接到互联网或以其他方式使用网络连接。您的源代码只存在您的设备上,它不提交任何其他形式的数据。

那么PC-lint Plus相比PC-lint/FlexeLint有什么新功能呢?

现代C ++支持

PC-lint Plus完全支持C++ 11,C++ 14和C++ 17标准,它利用clang来执行C和C++源代码的词法分析和解析。Clang定期更新合并到PC-lint Plus中,确保及时支持最新的语言功能。因此,PC-lint Plus支持最新的编译器,包括当前版本的GCC和clang以及Visual Studio 2015/2017。

改进数值追踪

数值跟踪现在可以存储值的范围,而不仅仅是单个值,这使得PC-lint Plus可以在确切的值未知时进一步了解您的代码,但它们可能受条件逻辑的限制。

并行分析

PC-lint Plus通过使用单独的线程分析每个源代码模块来支持项目的并行分析,通过充分利用可用硬件加速分析过程。

简化配置

新的配置工具通过从编译器和构建过程中提取信息来自动化配置过程,以生成与构建项目的方式相匹配的全面而准确的配置。

改进了MISRA C 2012支持

PC-lint Plus通过新信息进一步扩展了现有的MISRA C 2012支持,改进了信息措辞,更清楚地解释了诊断出来的违规行为。支持AMD-1,以及调整某些MISRA规则的行为以匹配常见用例和替代规则解释说明。PC-lint Plus还支持essential type(基本类型)细分,这些细分可以准确显示表达式的不同部分如何促成表达式的最终essential type,以帮助理解与essential type相关的信息。

增强诊断功能

通过提供问题的精确位置,突出显示信息中引用的关键结构,以及引入补充信息来进一步了解诊断发布的条件,PC-lint Plus的诊断功能得到了极大改进。

现在可以将信息组织到用户定义的命名组中以便于操作,参数化抑制可以本地化到特定代码区域,可以使用正规表达式抑制消息,使用-file来抑制指定文件中的信息。

改进函数语义

PC-lint Plus为200多种标准库函数提供内置函数语义。现在当函数体可用时,将验证使用-sem选项定义的自定义返回语义。例如,如果函数在特定运行期间实际返回null,而指定函数没有返回null的语义将导致诊断开始。

现在可以为单个函数过载和函数模板指定用户定义的函数语义。

其他特性

除了上述新功能和增强功能外,PC-lint Plus还包含许多小改进,包括内置帮助系统,-deprecate选项现在支持弃用类型和选项,改进了printf和scanf格式字符串检查以及位置参数支持 ,能够保存和恢复整个选项环境,改进信息措辞,以及数百种新诊断(包括许多致力于使用新C ++语言功能的诊断)。

                                                                                  点击下载PC-lint Plus试用版

                                         为您推荐:【FAQ】C和C ++的首选静态分析工具 PC-lint Plus 常见问题集(一)

猜你喜欢

转载自blog.csdn.net/weixin_43746001/article/details/85089811
今日推荐