Polyspace® Code Prover™ проверяет каждую операцию в ваш код для определенных ошибок времени выполнения и отображает результат как красную, зеленую или оранжевую проверку. Для получения дополнительной информации смотрите Цвета Результата и Исходного кода Программы автоматического доказательства Кода.
Необходимо рассмотреть красную или оранжевую проверку и определить, зафиксировать ли код. Таблицы ниже приводят проверки, которые выполняет Polyspace Code Prover и как можно рассмотреть их.
Проверять | Как рассмотреть | Детали |
---|---|---|
Function not called |
Займитесь расследованиями, почему функция не появляется в графе вызовов, начинающем с | Рассмотрите и зафиксируйте функцию, не вызванную проверки |
Function not reachable |
Идентифицируйте сайты вызова функции и займитесь расследованиями, почему они происходят в недостижимом коде. | Рассмотрите и зафиксируйте функцию не достижимые проверки |
Non-initialized local variable |
Найдите предшествующие переменные инициализации, если кто-либо и видит, может ли ваша программа обойти их. | Рассмотрите и зафиксируйте неинициализированные проверки локальной переменной |
Non-initialized pointer |
Найдите инициализации обратного указателя, если кто-либо и видит, может ли ваша программа обойти их. | Рассмотрите и зафиксируйте неинициализированные проверки указателя |
Non-initialized variable |
Найдите предшествующие инициализации глобальной переменной, если кто-либо и видит, может ли ваша программа обойти их. | Рассмотрите и зафиксируйте неинициализированные переменные проверки |
Return value not initialized |
Идентифицируйте пути через свое тело функции, которые не заканчиваются в операторе | Рассмотрите и зафиксируйте возвращаемое значение не инициализированные проверки |
Unreachable code |
Займитесь расследованиями, почему условный оператор в вашем коде избыточен, например, всегда верный или всегда ложный. | Рассмотрите и зафиксируйте недостижимые проверки кода |
Проверять | Как рассмотреть | Детали |
---|---|---|
Division by zero |
Рассмотрите предшествующие операции в своем коде, которые приводят к нулевому значению знаменателя. | Рассмотрите и зафиксируйте проверки деления на нуль |
Invalid shift operations |
Рассмотрите предшествующие операции в своем коде, которые приводят к сумме сдвига вне границ или лево-переключаемой отрицательной величины. | Рассмотрите и зафиксируйте недопустимые проверки операций сдвига |
Overflow |
Рассмотрите предшествующие операции в своем коде, которые приводят к переполнению операции. | Рассмотрите и зафиксируйте проверки переполнения |
Проверять | Как рассмотреть | Детали |
---|---|---|
Absolute address usage |
Рассмотрите использование абсолютного адреса в вашем коде и убедитесь, что адреса допустимы. | Рассмотрите и зафиксируйте абсолютные проверки использования адреса |
Illegally dereferenced pointer |
Рассмотрите предшествующие операции в своем коде, которые приводят к обращению указателя вне его выделенного буфера памяти. | Рассмотрите и зафиксируйте незаконно разыменованные проверки указателя |
Out of bounds array index |
Рассмотрите предшествующие операции в своем коде, которые приводят к индексу массива, являющемуся больше, чем или равный размеру массивов. | Рассмотрите и зафиксируйте за пределы проверки индекса массива |
Проверять | Как рассмотреть | Детали |
---|---|---|
Non-terminating call |
Рассмотрите операции в теле функции и найдите, какая ошибка времени выполнения происходит из-за проблем, характерных для текущего вызова функции. | Рассмотрите и зафиксируйте неостанавливающиеся проверки вызова |
Non-terminating loop |
Рассмотрите операции в цикле и определите, почему цикл не останавливается или почему определенная ошибка времени выполнения происходит в одном из выполнений цикла. | Рассмотрите и зафиксируйте неостанавливающиеся проверки цикла |
Проверять | Как рассмотреть | Детали |
---|---|---|
Invalid C++ specific operations |
Определите первопричину неположительного размера массивов или неправильное использование | Рассмотрите и зафиксируйте недопустимый C++ определенные проверки операций |
Function not returning value |
Идентифицируйте пути через свое тело функции, которые не заканчиваются в операторе | Рассмотрите и зафиксируйте функцию не возвращение чеков значения |
Incorrect object oriented programming |
Займитесь расследованиями, почему определенный членский вызов | Рассмотрите и зафиксируйте неправильные проверки объектно-ориентированного программирования |
Null this-pointer calling method |
Займитесь расследованиями, почему указателем на текущий объект может быть | Рассмотрите и зафиксируйте пустые проверки вызывающего метода этого-указателя |
Uncaught exception |
Займитесь расследованиями, как исключение может выйти непойманный из функции, где это выдано. | Рассмотрите и зафиксируйте проверки неперехваченного исключения |
Проверять | Как рассмотреть | Детали |
---|---|---|
Correctness condition |
Найдите первопричину неправильного употребления указателя функции, неправильного преобразования массива или значений переменных вне заданных ограничений. | Рассмотрите и зафиксируйте проверки условия правильности |
Invalid use of standard library routine |
Займитесь расследованиями, почему аргументы в текущем вызове стандартной библиотечной подпрограммы недопустимы. | Рассмотрите и зафиксируйте недопустимое использование стандартных проверок библиотечной подпрограммы |
User assertion |
Займитесь расследованиями, почему условие в операторе | Рассмотрите и зафиксируйте пользовательские проверки утверждения |