降低 Polyspace Code Prover 中的橙色检查项
在使用 Polyspace Code Prover 进行代码验证时,橙色检查项表示 Polyspace 检测到可能存在的运行时错误,但无法证实。为了帮助 Polyspace 产生更多已证实的结果,我们可以采取以下方法。
提供验证上下文
有时候,我们提供的代码可能没有包含足够的运行时执行信息,例如:
- 没有主函数。
- 有已声明但未定义的函数。
- 函数参数的值仅在运行时可用。
- 有按特定顺序执行的并发运行函数。
如果没有足够的信息,Polyspace Code Prover 就无法验证运行时错误是否存在。
约束橙色来源
通常,通过约束相对较少数量的橙色来源,就可以解决大部分橙色检查项。在验证结果中,可以看到一个可能导致多个橙色检查项的来源列表,如易失性变量和存根函数。要查看此列表,可点击结果详细信息窗格上的相应按钮。约束这些来源,以便从过度近似中消除大多数橙色检查项。从长远来看,与其在审查时对橙色来源做出反应并为后续运行进行约束,不如在第一次运行时就制定一种有效的策略来约束可能的橙色来源。
常用的上下文规范
为了提供更多的验证上下文并减少橙色检查项,可以使用以下方法:
| 方法 | 示例 |
| — | — |
| 定义 Polyspace 生成的主函数如何初始化变量和调用函数 | “Code Prover Verification” |
| 定义全局变量和函数参数的范围 | “Create Constraint Template from Co
超级会员免费看
订阅专栏 解锁全文
66

被折叠的 条评论
为什么被折叠?



