code prover 运行时检查 -凯发k8网页登录

main content

code prover 运行时检查

polyspace® code prover™ 会检查 c/c 代码中的每个运算是否存在某些运行时错误,并将结果显示为红色、绿色或橙色检查。有关详细信息,请参阅code prover 结果和源代码颜色

您必须审查红色或橙色检查并确定是否要修复您的代码。下面的表列出了 polyspace code prover 执行的检查,以及如何审查这些检查。

数据流检查

检查如何审查详细信息

main 或其他入口函数开始,调查函数为何未出现在调用图中。

确定函数的调用点,然后调查它们为何出现在不可达代码中。

找到前面的变量初始化(如果有),看看您的程序是否可以绕过它们。

找到前面的指针初始化(如果有),看看您的程序是否可以绕过它们。

找到前面的全局变量初始化(如果有),看看您的程序是否可以绕过它们。

找出函数体中未以 return 语句结尾的路径。

不可达代码

调查代码中的条件语句为何冗余,例如,始终为 true 或始终为 false。

数值检查

检查如何审查详细信息

审查代码中导致分母值为零的先前运算。

审查代码中导致位移量超出边界或为负值(左移)的先前运算。

审查代码中导致运算溢出的先前运算。

静态内存检查

检查如何审查详细信息

审查代码中使用的绝对地址并确保这些地址有效。

审查代码中导致指针指向为其分配的内存缓冲区之外的先前运算。

审查代码中导致数组索引大于或等于数组大小的先前运算。

控制流检查

检查如何审查详细信息

审查函数体中的运算,并确定哪些运行时错误是当前函数调用相关的问题所导致的。

审查循环中的运算,并确定循环为什么没有终止,或者为什么会在其中一个循环运行中发生确定的运行时错误。

c 检查

检查如何审查详细信息

确定出现非正数数组大小或错误使用 typeiddynamic_cast 运算符的根本原因。

找出函数体中未以 return 语句结尾的路径。

调查为什么某个 virtual 成员调用或 this 指针的使用是一种错误的面向对象编程模式。

调查为什么指向当前对象的指针的值可能为 null

调查某个异常是如何在引发它的函数中逃脱而未被捕获到的。

其他检查

检查如何审查详细信息

查明函数指针误用、数组转换不正确或变量值超出指定约束的根本原因。

调查为什么当前对标准库例程的调用中的参数无效。

调查为什么 assert 语句中的条件会失败。

相关主题

网站地图