Polyspace分析:变量范围约束、运行时检查配置与审查信息导入
1. Polyspace Code Prover分析中约束变量范围
1.1 分析背景与目标
在Polyspace Code Prover分析中,为了获得最精确的结果,被分析的程序应尽可能完整。但实际情况中,可能由于多种原因无法提供完整的程序进行分析。即便对于完整的应用程序,一些外部输入的约束信息也可能存在于程序之外。此时,就需要对分析进行约束,以在不完整应用程序的情况下也能得到精确结果。
1.2 Code Prover对程序边界变量范围的假设
当进行Polyspace Code Prover分析时,需要对程序边界的变量范围做出假设,以提供可靠的结果。分析会检查所有可能导致特定类型运行时错误的操作,目标是从数学上证明这些操作是否会导致运行时错误。若分析无法证明错误的存在或不存在,会将操作标记为橙色以便手动检查。
被分析的程序模块可能存在两种不完整的情况:
- 没有定义应用程序入口点的 main() 函数。
- 并非所有函数实现都可用于分析,例如分析的程序模块可能调用了未提供给分析的其他模块中定义的函数。
以下是一个简单的程序模块示例:
#include <stdint.h>
int8_t getAnInput(void);
int32_t calculateSum(int32_t numberToProcess) {
int32_t sum = 0;
for(int32_t i = 0; i <
超级会员免费看
订阅专栏 解锁全文
63

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



