Polyspace®代码验证™检查代码中的每个操作是否存在某些运行时错误,并将结果显示为红色、绿色或橙色检查。有关更多信息,请参见代码验证结果和源代码颜色.
您必须检查红色或橙色检查,并决定是否修复代码。下面的表格列出了检查Polyspace代码验证执行情况,以及如何进行评估。
检查 | 如何复习 | 细节 |
---|---|---|
函数不叫 |
方法开始,研究为什么函数没有出现在调用图中 |
检查和修复未调用函数的检查 |
函数不可以 |
确定函数的调用点,并研究它们在不可访问代码中出现的原因。 |
检查和修复功能不可达检查 |
Non-initialized局部变量 |
找到之前的变量初始化,如果有的话,看看你的程序是否可以绕过它们。 |
检查和修复未初始化的本地变量检查 |
Non-initialized指针 |
找到之前的指针初始化,如果有,看看你的程序是否可以绕过它们。 |
检查和修复未初始化的指针检查 |
Non-initialized变量 |
查找全局变量的初始化(如果有的话),看看你的程序是否可以绕过它们。 |
检查和修复未初始化的变量检查 |
返回值未初始化 |
确定函数体中不以a结尾的路径 |
检查和修复返回值未初始化的检查 |
遥不可及的代码 |
研究代码中的条件语句为什么是冗余的,例如总是为真还是总是为假。 |
检查和修复不可访问的代码检查 |
检查 | 如何复习 | 细节 |
---|---|---|
除零 |
检查代码中导致分母为零的先前操作。 |
零检查的审查和修复部门 |
无效的转移操作 |
检查代码中先前导致移位量超出界限或左移负值的操作。 |
检查和修复无效的轮班操作检查 |
溢出 |
检查代码中先前导致操作溢出的操作。 |
检查和修复溢出检查 |
检查 | 如何复习 | 细节 |
---|---|---|
使用绝对地址 |
检查代码中绝对地址的使用,确保地址是有效的。 |
检查和修复绝对地址使用检查 |
非法取消引用指针 |
检查代码中先前导致指针指向其分配的内存缓冲区之外的操作。 |
检查和修复非法取消引用的指针检查 |
数组索引越界 |
检查代码中先前导致数组索引大于或等于数组大小的操作。 |
检查和修复超出边界的数组索引检查 |
检查 | 如何复习 | 细节 |
---|---|---|
终止调用 |
检查函数体中的操作,找出由于特定于当前函数调用的问题而发生的运行时错误。 |
检查和修复未终止的电话检查 |
终止循环 |
检查循环中的操作,并确定为什么循环没有终止,或者为什么在某个循环运行时发生明确的运行时错误。 |
检查和修复非终止循环检查 |
检查 | 如何复习 | 细节 |
---|---|---|
无效的c++特定操作 |
确定非正数组大小或错误使用的根本原因 |
检查和修复无效的c++特定操作检查 |
函数不返回值 |
确定函数体中不以a结尾的路径 |
检查和修复函数不返回值检查 |
错误的面向对象编程 |
调查为什么 |
检查和修复不正确的面向对象编程检查 |
空this-pointer调用方法 |
研究为什么指向当前对象的指针可以是 |
检查和修复空的This-pointer调用方法检查 |
未捕获异常 |
研究异常如何在未捕获的情况下从抛出它的函数转义。 |
检查和修复未捕获的异常检查 |
检查 | 如何复习 | 细节 |
---|---|---|
正确性条件 |
找出函数指针误用、不正确的数组转换或指定约束外的变量值的根本原因。 |
检查和修正正确性条件检查 |
标准库例程的使用无效 |
请研究对标准库例程的当前调用中的参数为何无效。 |
检查和修复标准库例程检查的无效使用 |
用户断言 |
调查为什么这种情况 |
检查和修复用户断言检查 |