概述
polyspace 是 mathworks 公司产品,主要用于分析软件运行时错误工具。它包括polyspace bug finder 和polyspace code prover 两个模块。
产品介绍
• polyspace bug finder
polyspace bug finder 是静态代码分析软件,可以发现 c/c++ 代码中的各类缺陷,包括运行时错误,数据流问题,编程问题等各类代码缺陷。polyspace bug finder 使用静态分析的方法分析软件控制,数据流和过程间的行为。可以在软件开发阶段就帮助开发人员发现并修正软件缺陷。
polyspace bug finder 可以生成软件代码静态度量报告,包括发现的缺陷,编码规范不合规项和代码质量信息比如圈复杂度。为了方便使用,polyspace bug finder 还提供了和 eclipse ide 开发环境及用户的构建系统集成的功能。
通过 iec certifcation kit(iec 61508和 iso 26262)和 do qualifcation kit (do178),polyspace 提供对相关工业标准认证的支持。同时,polyspace 支持 ada 语言的代码检查。
• polyspace code prover
polyspace code prover 证明 c/c++ 代码中不含有溢出,除零,数组越界等特定的运行时错误。它不需要运行代码,代码插装和测试用例。polyspace code prover 使用静态分析和形式化的抽象解释方法,适用于手写代码,自动生成代码和两者都有的混合代码。结果采用颜色表示代码中是否没有运行时错误,被证明的错误,不可达代码和未经证明的代码。
polyspace code prover 使用抽象解释和静态分析方法来证明,识别和分析运行时错误,例如溢出,除零和指针的越界。这个技术综合完整的验证所有的运行条件并自动的证明代码是被证明的(安全的,错误的,不可达的)和未经证明的。polyspace code prover 的检查结果用颜色来标识。
能够发现的错误包括:
♦ 溢出,除零及其它的数学错误
♦ 数组访问越界和非法的指针取消引用
♦ 总是 true/false 的语句
♦ 类成员无初始化 (c++)
♦ 读取未初始化的数据
♦ 访问 null this 指针 (c++)
♦ 死代码
♦ 与面向对象编程,继承和错误处理有关的动态错误 (c++)