Измените поведение по умолчанию средств проверки средства поиска ошибки

Анализ 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)

Типы данных

  • MISRA C®: 2 004 правила 12.6, 13.2, 15.4

  • MISRA C: 2 012 правил 10.1, 10.3, 10.5, 14.4, 16.7

Правила, покрытые этими средствами проверки, включают булевы типы. Если вы используете эту опцию, можно обработать пользовательские типы как эффективно булев.

Allowed pragmas (-allowed-pragmas)

Имена прагм

MISRA C: 2 004 правила 3.4 и правило 16-6-1 C++ MISRA

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

Похожие темы