Анализ Polyspace® Bug Finder™ проверяет код C/C++ на ошибки и внешние кодирующие стандартные нарушения. По умолчанию средства проверки Средства поиска Ошибки спроектированы к:
Покажите как можно меньше ложных положительных сторон.
Потребуйте минимальной настройки заранее.
Однако для определенных проектов, вы можете хотеть изменить поведение по умолчанию некоторых средств проверки. Например, вы можете хотеть обработать некоторые пользовательские типы данных так же эффективно булевская переменная или обнаружить гонки данных включающие операции, которые Средство поиска Ошибки рассматривает как атомарный по умолчанию.
Используйте эту тему, чтобы найти, что модификации допускали средства проверки Средства поиска Ошибки. В качестве альтернативы можно искать эти опции в аналитическом отчете видеть, было ли поведение по умолчанию средств проверки изменено.
Обратите внимание на то, что:
Опции не включают или отключают средство проверки.
Чтобы включить или отключить определенные средства проверки, смотрите, Выбирают Specific Bug Finder Defect Checkers.
Можно использовать эти опции только, чтобы изменить поведение существующего средства проверки.
Опции, такие как тип целевого процессора, многозадачные опции и внешние ограничения могут также изменить поведение средства проверки. Однако модификация происходит как побочный эффект. Вы обычно задаете эти опции, чтобы точно отразить ваше целевое окружение.
Опция | Значение опции | Модифицированные средства проверки | Модификация |
---|---|---|---|
Find defects (-checkers) | Data race including atomic operations (пользовательский интерфейс) или DATA_RACE_ALL (командная строка) | Data race | По умолчанию средство проверки отмечает гонки данных, включающие неатомарные операции. Если операция является атомарной, она не может быть прервана операциями в другой задаче или потоке. Если вы используете эту опцию, все операции рассматриваются при установке флага гонок данных. |
Run stricter checks considering all values of system inputs (-checks-using-system-input-values) | Средства проверки, которые используют численные значения системных входных параметров | Смотрите расширяют средства проверки средства поиска ошибки, чтобы найти дефекты от определенных системных входных значений. | |
-code-behavior-specifications | XML-файл. Записи в XML-файле сопоставляют пользовательские функции с функциями от Стандартной Библиотеки. | Средства проверки, которые обнаруживают проблемы со Стандартными Библиотечными функциями | Смотрите расширяют средства проверки средства поиска ошибки для стандартных библиотечных функций к пользовательским библиотекам. |
XML-файл. Записи в XML-файле сопоставляют пользовательские примитивы параллелизма с единицами, которые может автоматически обнаружить Средство поиска Ошибки. | Дефекты параллелизма | Смотрите расширяют средства проверки дефекта параллелизма к неподдерживаемым средам многопоточности. | |
XML-файл. Записи в XML-файле перечисляют функции, которые вы хотите запретить из своего исходного кода. | Use of a forbidden function | Смотрите флаг или небезопасные функции устаревшие Используя средства проверки средства поиска ошибки. | |
-detect-bad-float-op-on-zero | Floating point comparison with equality operators | По умолчанию средство проверки игнорирует сравнения с плавающей точкой с операторами равенства, если один из операндов 0.0. Если вы используете эту опцию, сравнения с 0,0 также отмечаются. |
Кодирование средств проверки стандартов может также быть расширено или изменено с подходящими вариантами.
Опция | Значение опции | Модифицированные средства проверки | Модификация |
---|---|---|---|
Effective boolean types (-boolean-types) | Типы данных |
| Правила, покрытые этими средствами проверки, включают булевы типы. Если вы используете эту опцию, можно обработать пользовательские типы как эффективно булев. |
Allowed pragmas (-allowed-pragmas) | Имена прагм | MISRA C: 2 004 правила 3.4 и правило 16-6-1 C++ MISRA | Эти правила требуют, чтобы все директивы прагмы были зарегистрированы в рамках документации компилятора. Если вы используете эту опцию, анализ считает прагмы заданными как зарегистрированные прагмы. |