Code Prover 运行时检查
Polyspace® Code Prover™ 会检查 C/C++ 代码中的每个运算是否存在某些运行时错误,并将结果显示为红色、绿色或橙色检查。有关详细信息,请参阅Code Prover 结果和源代码颜色。
您必须审查红色或橙色检查并确定是否要修复您的代码。下面的表列出了 Polyspace Code Prover 执行的检查,以及如何审查这些检查。
数据流检查
检查 | 如何审查 | 详细信息 |
---|---|---|
Function not called | 从 | Review and Fix Function Not Called Checks |
Function not reachable | 确定函数的调用点,然后调查它们为何出现在不可达代码中。 | Review and Fix Function Not Reachable Checks |
Non-initialized local variable | 找到前面的变量初始化(如果有),看看您的程序是否可以绕过它们。 | Review and Fix Non-initialized Local Variable Checks |
Non-initialized pointer | 找到前面的指针初始化(如果有),看看您的程序是否可以绕过它们。 | Review and Fix Non-initialized Pointer Checks |
未初始化的变量 | 找到前面的全局变量初始化(如果有),看看您的程序是否可以绕过它们。 | Review and Fix Non-initialized Variable Checks |
Return value not initialized | 找出函数体中未以 | Review and Fix Return Value Not Initialized Checks |
不可达代码 | 调查代码中的条件语句为何冗余,例如,始终为 true 或始终为 false。 | Review and Fix Unreachable Code Checks |
数值检查
检查 | 如何审查 | 详细信息 |
---|---|---|
Division by zero | 审查代码中导致分母值为零的先前运算。 | Review and Fix Division by Zero Checks |
Invalid shift operations | 审查代码中导致位移量超出边界或为负值(左移)的先前运算。 | Review and Fix Invalid Shift Operations Checks |
Overflow | 审查代码中导致运算溢出的先前运算。 | Review and Fix Overflow Checks |
静态内存检查
检查 | 如何审查 | 详细信息 |
---|---|---|
Absolute address usage | 审查代码中使用的绝对地址并确保这些地址有效。 | Review and Fix Absolute Address Usage Checks |
Illegally dereferenced pointer | 审查代码中导致指针指向为其分配的内存缓冲区之外的先前运算。 | Review and Fix Illegally Dereferenced Pointer Checks |
Out of bounds array index | 审查代码中导致数组索引大于或等于数组大小的先前运算。 | Review and Fix Out of Bounds Array Index Checks |
控制流检查
检查 | 如何审查 | 详细信息 |
---|---|---|
Non-terminating call | 审查函数体中的运算,并确定哪些运行时错误是当前函数调用相关的问题所导致的。 | Review and Fix Non-Terminating Call Checks |
Non-terminating loop | 审查循环中的运算,并确定循环为什么没有终止,或者为什么会在其中一个循环运行中发生确定的运行时错误。 | Review and Fix Non-Terminating Loop Checks |
C++ 检查
检查 | 如何审查 | 详细信息 |
---|---|---|
Invalid C++ specific operations | 确定出现非正数数组大小或错误使用 | Review and Fix Invalid C++ Specific Operations Checks |
Function not returning value | 找出函数体中未以 | Review and Fix Function Not Returning Value Checks |
Incorrect object oriented programming | 调查为什么某个 | Review and Fix Incorrect Object Oriented Programming Checks |
Null this-pointer calling method | 调查为什么指向当前对象的指针的值可能为 | Review and Fix Null This-pointer Calling Method Checks |
Uncaught exception | 调查某个异常是如何在引发它的函数中逃脱而未被捕获到的。 | Review and Fix Uncaught Exception Checks |
其他检查
检查 | 如何审查 | 详细信息 |
---|---|---|
Correctness condition | 查明函数指针误用、数组转换不正确或变量值超出指定约束的根本原因。 | Review and Fix Correctness Condition Checks |
Invalid use of standard library routine | 调查为什么当前对标准库例程的调用中的参数无效。 | Review and Fix Invalid Use of Standard Library Routine Checks |
User assertion | 调查为什么 | Review and Fix User Assertion Checks |