主要内容

代码验证程序运行时检查

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

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

数据流检查

检查 如何复习 细节
函数不叫

方法开始,研究为什么函数没有出现在调用图中主要或者另一个入口点函数。

检查和修复未调用函数的检查
函数不可以

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

检查和修复功能不可达检查
Non-initialized局部变量

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

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

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

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

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

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

确定函数体中不以a结尾的路径返回声明。

检查和修复返回值未初始化的检查
遥不可及的代码

研究代码中的条件语句为什么是冗余的,例如总是为真还是总是为假。

检查和修复不可访问的代码检查

数值检查

检查 如何复习 细节
除零

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

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

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

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

检查代码中先前导致操作溢出的操作。

检查和修复溢出检查

静态内存检查

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

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

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

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

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

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

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

控制流检查

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

检查函数体中的操作,找出由于特定于当前函数调用的问题而发生的运行时错误。

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

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

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

c++检查

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

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

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

确定函数体中不以a结尾的路径返回声明。

检查和修复函数不返回值检查
错误的面向对象编程

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

检查和修复不正确的面向对象编程检查
空this-pointer调用方法

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

检查和修复空的This-pointer调用方法检查
未捕获异常

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

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

其他检查

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

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

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

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

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

调查为什么这种情况断言语句失败。

检查和修复用户断言检查