主要内容

代码验证程序运行时检查

Polyspace®代码prover™检查代码中的每个操作是否存在某些运行时错误,并将结果显示为红色、绿色或橙色检查。有关更多信息,请参见代码验证结果和源代码颜色

您必须检查红色或橙色检查,并决定是否修复代码。下面的表格列出了检查Polyspace代码验证执行情况,以及如何进行评估。

数据流检查

检查 如何复习 细节
功能不叫

调查函数不会出现在呼叫图中的原因主要的或者另一个入口点函数。

审查和修复功能不调用检查
函数不可以

确定函数的调用点,并研究它们在不可访问代码中出现的原因。

检查和修复功能不可达检查
非初始化的局部变量

找到之前的变量初始化,如果有的话,看看你的程序是否可以绕过它们。

检查和修复未初始化的本地变量检查
Non-initialized指针

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

检查和修复未初始化的指针检查
Non-initialized变量

查找全局变量的初始化(如果有的话),看看你的程序是否可以绕过它们。

检查和修复未初始化的变量检查
返回值未初始化

通过函数体识别不结尾的函数体的路径返回陈述。

检查和修复返回值未初始化的检查
无法访问的代码

调查为什么在你的代码中的条件语句是多余的,例如,永远为真或假。

查看并修复无法访问的代码检查

数值检查

检查 如何复习 细节
除零

检查代码中导致分母为零的先前操作。

零检查的审查和修复部门
无效的转移操作

检查代码中先前导致移位量超出界限或左移负值的操作。

检查和修复无效的轮班操作检查
溢出

查看代码中的先前操作,导致运行溢出。

检查和修复溢出检查

静态内存检查

检查 如何复习 细节
使用绝对地址

检查代码中绝对地址的使用,确保地址是有效的。

检查和修复绝对地址使用检查
非法取消引人入胜的指针

查看代码中的先前操作,导致指向指向其分配的内存缓冲区的指针。

检查和修复非法取消引用的指针检查
数组索引越界

检查代码中先前导致数组索引大于或等于数组大小的操作。

检查和修复超出边界的数组索引检查

控制流检查

检查 如何复习 细节
终止调用

审阅函数体中的操作并找到原因发生的运行时错误,因为特定于当前函数调用。

检查和修复未终止的电话检查
终止循环

检查循环中的操作,并确定为什么循环没有终止,或者为什么在某个循环运行时发生明确的运行时错误。

检查和修复非终止循环检查

c++检查

检查 如何复习 细节
无效的C ++特定操作

确定非正数组大小或错误使用的根本原因类型id或者的dynamic_cast操作符。

检查和修复无效的c++特定操作检查
函数不返回值

通过函数体识别不结尾的函数体的路径返回陈述。

审查和修复功能不返回值检查
错误的面向对象编程

调查某种程度虚拟成员通过电话或指针的使用代表了一种不正确的面向对象编程模式。

检查和修复不正确的面向对象编程检查
null此指针调用方法

研究为什么指向当前对象的指针可以是空值有价值的。

查看和解决Null此指针调用方法检查
未捕获异常

研究异常如何在未捕获的情况下从抛出它的函数转义。

检查和修复未捕获的异常检查

其他检查

检查 如何复习 细节
正确性条件

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

检查和修正正确性条件检查
标准库例程的使用无效

请研究对标准库例程的当前调用中的参数为何无效。

检查和修复标准库例程检查的无效使用
用户断言

调查的,为什么条件断言语句失败。

检查和修复用户断言检查