exponenta event banner

Коды во время выполнения Code Prover

Polyspace® Code Prover™ проверяет каждую операцию в коде на наличие определенных ошибок времени выполнения и отображает результат как красный, зеленый или оранжевый чек. Для получения дополнительной информации смотрите Результаты Code Prover и Цвета исходного кода.

Вы должны просмотреть красный или оранжевый чек и определить, исправлять ли ваш код. В приведенных ниже таблицах перечислены проверки, которые выполняет Polyspace Code Prover, и способы их просмотра.

Проверки потока данных

ПроверитьКак просмотретьПодробнее
Function not called

Исследуйте, почему функция не появляется в графике вызовов, начиная с main или другая функция точки входа.

Смотрите и исправьте функции, не вызываемые проверки
Function not reachable

Идентифицируйте сайты вызовов функции и исследуйте, почему они происходят в недоступном коде.

Проверяйте и исправляйте проверки недоступности функции
Non-initialized local variable

Найдите предыдущие инициализации переменной, если таковые имеются, и проверьте, может ли ваша программа обойти их.

Просмотрите и исправьте неинициализированные проверки локальных переменных
Non-initialized pointer

Найдите предыдущие инициализации указателя, если они есть, и проверьте, может ли ваша программа обойти их.

Просмотрите и исправьте неинициализированные проверки указателя
Non-initialized variable

Найдите предыдущие инициализации глобальной переменной, если таковые имеются, и проверьте, может ли ваша программа обойти их.

Просмотрите и исправьте неинициализированные проверки переменных
Return value not initialized

Идентифицируйте пути через тело функции, которые не заканчиваются return оператор.

Просмотр и исправление не инициализированных проверок возвращаемого значения
Unreachable code

Исследуйте, почему условный оператор в вашем коде избыточен, например, всегда true или всегда false.

Просмотрите и исправьте недостижимые проверки кода

Числовые проверки

ПроверитьКак просмотретьПодробнее
Division by zero

Проверьте предыдущие операции в вашем коде, которые приводят к нулевому значению знаменателя.

Просмотр и исправление деления по нулевым проверкам
Invalid shift operations

Просмотрите предыдущие операции в коде, которые приводят к тому, что величина сдвига вне границ или отрицательное значение сдвигается влево.

Просмотрите и исправьте недопустимые проверки операций смены
Overflow

Проверьте предыдущие операции в коде, которые приводят к переполнению операции.

Просмотрите и исправьте проверки переполнения

Статические проверки памяти

ПроверитьКак просмотретьПодробнее
Absolute address usage

Проверьте использование абсолютного адреса в коде и убедитесь, что адреса действительны.

Просмотр и исправление проверок использования абсолютных адресов
Illegally dereferenced pointer

Проверьте предыдущие операции в вашем коде, которые приводят к указателю, указывающему вне выделенного буфера памяти.

Просмотрите и исправьте незаконно размененные проверки указателя
Out of bounds array index

Проверьте предыдущие операции в коде, которые приводят к тому, что индекс массива больше или равен размеру массива.

Просмотрите и исправьте проверки индекса за пределами массива

Проверки потока управления

ПроверитьКак просмотретьПодробнее
Non-terminating call

Проверьте операции в теле функции и найдите, какая ошибка времени выполнения происходит из-за проблем, характерных для текущего вызова функции.

Просмотрите и исправьте проверки вызовов без завершения
Non-terminating loop

Проверьте операции в цикле и определите, почему цикл не заканчивается или почему в одном из запусков происходит определенная ошибка времени выполнения.

Просмотрите и исправьте проверки без завершения цикла

Проверки C++

ПроверитьКак просмотретьПодробнее
Invalid C++ specific operations

Определите первопричину непозитивного размера массива или неправильного использования typeid или dynamic_cast оператор.

Просмотр и исправление недопустимых проверок конкретных операций C++
Function not returning value

Идентифицируйте пути через тело функции, которые не заканчиваются return оператор.

Проверьте и исправьте функцию, не возвращающую проверки значений
Incorrect object oriented programming

Исследуйте, почему определенный virtual вызов или this представителя использование указателя представляет неправильный шаблон объекта ориентированного программирования.

Просмотрите и исправьте неправильные объекты программирования
Null this-pointer calling method

Исследуйте, почему можно NULL указатель на текущий объект-значен.

Проверьте и исправьте проверки метода вызова с использованием ядра указателя
Uncaught exception

Исследуйте, как исключение может вырваться из функции, где оно выдается.

Просмотр и исправление неоткрытых проверок исключений

Другие проверки

ПроверитьКак просмотретьПодробнее
Correctness condition

Найдите первопричину неправильного использования указателя на функцию, неправильного преобразования массива или значений переменных за пределами заданных ограничений.

Просмотр и исправление проверок условий правильности
Invalid use of standard library routine

Выясните, почему аргументы в текущем вызове стандартной стандартной программы библиотеки недопустимы.

Просмотр и исправление недопустимого использования рутинных проверок стандартной библиотеки
User assertion

Исследуйте, почему условие в assert оператор не справляется.

Просмотр и исправление проверок Assertion пользователя