Анализ Polyspace® Bug Finder™ проверяет код C/C++ на ошибки и внешние кодирующие стандартные нарушения. По умолчанию средства проверки Bug Finder спроектированы к:
Покажите как можно меньше ложных положительных сторон.
Потребуйте минимальной настройки заранее.
Однако для определенных проектов, вы можете хотеть изменить поведение по умолчанию некоторых средств проверки. Например, вы можете хотеть обработать некоторые пользовательские типы данных так же эффективно булевская переменная или обнаружить гонки данных включающие операции, которые Bug Finder рассматривает как атомарный по умолчанию.
Используйте эту тему, чтобы найти, что модификации допускали средства проверки Bug Finder. В качестве альтернативы можно искать эти опции в аналитическом отчете видеть, было ли поведение по умолчанию средств проверки изменено.
Обратите внимание на то, что:
Опции не включают или отключают средство проверки.
Чтобы включить или отключить определенные средства проверки, смотрите, Выбирают 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) | Средства проверки, которые используют численные значения системных входных параметров | Смотрите расширяют средства проверки Bug Finder, чтобы найти дефекты от определенных системных входных значений. | |
-code-behavior-specifications | XML-файл. Записи в XML-файле сопоставляют пользовательские функции с функциями от Стандартной Библиотеки. | Средства проверки, которые обнаруживают проблемы со Стандартными Библиотечными функциями | Смотрите расширяют средства проверки Bug Finder для стандартных библиотечных функций к пользовательским библиотекам. |
XML-файл. Записи в XML-файле сопоставляют пользовательские примитивы параллелизма с единицами, которые может автоматически обнаружить Bug Finder. | Дефекты параллелизма | Смотрите расширяют средства проверки дефекта параллелизма к неподдерживаемым средам многопоточности. | |
XML-файл. Записи в XML-файле перечисляют функции, которые вы хотите запретить из своего исходного кода. | Use of a forbidden function | Смотрите флаг или небезопасные функции устаревшие Используя средства проверки Bug Finder. | |
XML-файл. Записи в XML-файле перечисляют функции, аргументы указателя которых должны указать на инициализированные буферы. | Non-initialized variable | Смотрите расширяют средства проверки для инициализации, чтобы проверять аргументы функции, пройден указателями. | |
-detect-bad-float-op-on-zero | Floating point comparison with equality operators | По умолчанию средство проверки игнорирует сравнения с плавающей точкой с операторами равенства, если один из операндов 0.0. Если вы используете эту опцию, сравнения с 0,0 также отмечаются. | |
-consider-analysis-perimeter-as-trust-boundary | Испорченные дефекты данных | По умолчанию испорченные дефекты данных рассматривают внешне полученные данные, как испорчено. При помощи этой опции следующее также рассматривается как испорченные данные:
|
Кодирование средств проверки стандартов может также быть расширено или изменено с подходящими вариантами.
Опция | Значение опции | Модифицированные средства проверки | Модификация |
---|---|---|---|
Effective boolean types (-boolean-types) | Типы данных |
| Правила, покрытые этими средствами проверки, включают булевы типы. Если вы используете эту опцию, можно обработать пользовательские типы как эффективно булев. |
Allowed pragmas (-allowed-pragmas) | Имена прагм | Правило 3.4 MISRA C:2004 и правило 16-6-1 C++ MISRA | Эти правила требуют, чтобы все директивы прагмы были зарегистрированы в рамках документации компилятора. Если вы используете эту опцию, анализ считает прагмы заданными как зарегистрированные прагмы. |
-code-behavior-specifications | XML-файл. Записи в XML-файле задают пределы на глобальных аспектах вашей программы, таких как максимальная глубина вложения в операторах управления. | MISRA C: 2 012 правил 1.1 | Можно увеличить или уменьшить эти параметры средства проверки правила:
|
XML-файл. Записи в XML-файле задают, сколько символы сравнены прежде, чем рассмотреть двумя идентификаторами как отличные. | MISRA C: 2 012 правил 5.1 к 5,5 | Эти правила требуют уникальности определенных типов идентификаторов. Например, правило 5.1 требует, чтобы внешние идентификаторы были отличны. Если различие между двумя идентификаторами происходит вне первого | |
Check Guidelines (-guidelines) | Пороги для средств проверки сложности программного обеспечения | Сложность программного обеспечения | Смотрите уменьшают сложность программного обеспечения при помощи средств проверки Polyspace |