При анализе средства проверки кода выполняется исчерпывающая проверка исходного кода на наличие распространенных ошибок во время выполнения. Исчерпывающий характер статического анализа предназначен для предотвращения возникновения ошибок во время выполнения критического программного обеспечения безопасности. Из-за критической цели анализа, связанной с безопасностью, программа Code Prover не позволяет:
Выборочно отключать определенные проверки времени выполнения.
Скрытие результатов проверок во время выполнения из списка результатов через аннотации исходного кода. Можно выровнять результаты с помощью аннотаций, но выровненные результаты будут по-прежнему отображаться в списке результатов.
Можно подавить определенные результаты, применив фильтры после анализа или даже создав отфильтрованные отчеты. При создании отфильтрованного отчета из результатов проверки кода в отчете отображаются фильтры и отражаются выбранные варианты. Дополнительные сведения см. в разделах Фильтрация и группирование результатов в интерфейсе пользователя Polyspace Desktop и Создание отчетов.
Однако можно изменить поведение некоторых проверок по умолчанию и полностью отключить их для инициализации. При создании отчета на основе результатов анализа отчет показывает использование этих опций.
В этом разделе перечислены параметры, изменяющие поведение по умолчанию определенных проверок времени выполнения. Следует отметить, что, хотя опция в основном относится к определенному типу проверки, она также влияет на проверки других типов. См. раздел Анализ проверки кода после проверки красного и оранжевого цветов.
| Проверить | Поведение по умолчанию | Выбор |
|---|---|---|
Invalid shift operations | Для подписанных операндов не допускаются левые смены. | Allow negative operand for left shifts (-allow-negative-operand-in-shift) |
Overflow | Переполнение целого числа со знаком запрещено. | Overflow mode for signed integer (-signed-integer-overflows) |
Overflow | Переполнения целого числа без знака не обнаружены. | Overflow mode for unsigned integer (-unsigned-integer-overflows) |
| Проверить | Поведение по умолчанию | Выбор |
|---|---|---|
Несграничные поплавки не рассматриваются. | ||
Subnormal float | Субнормальные результаты не обнаружены. | Subnormal detection mode (-check-subnormal) |
| Проверить | Поведение по умолчанию | Выбор |
|---|---|---|
Проверки инициализации выполняются только при чтении переменной. |
| |
Global variable not assigned a value in initialization code | Проверка инициализации глобальной переменной выполняется только при считывании переменной. |
| Проверить | Поведение по умолчанию | Выбор |
|---|---|---|
Invalid use of standard library routine | Только стандартные подпрограммы библиотеки проверяются на достоверность аргументов. Пользовательские библиотечные функции не проверяются. | -code-behavior-specifications |
| Проверить | Поведение по умолчанию | Выбор |
|---|---|---|
Illegally dereferenced pointer | Указатели на поле структуры не могут указывать на другое поле. |
|
Illegally dereferenced pointer | Указатели на структуру должны иметь достаточно буфера для всей структуры. | Allow incomplete or partial allocation of structures (-size-in-bytes) |
Illegally dereferenced pointer | Отмена привязки указателя стека за пределами области не обнаружена. | Detect stack pointer dereference outside scope (-detect-pointer-escape) |
Correctness condition | Несовпадения указателей функций недопустимы. | Permissive function pointer calls (-permissive-function-pointer) |
| Контролер | Поведение по умолчанию | Выбор |
|---|---|---|
Незакрепленные функции и функции, вызываемые из недостижимого кода, не сообщаются. |