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

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

Типы данных

  • Правила 12.6, 13.2, 15.4 MISRA C®:2004

  • Правила 10.1, 10.3, 10.5, 14.4, 16.7 MISRA C:2012

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

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 требует, чтобы внешние идентификаторы были отличны.

Если различие между двумя идентификаторами происходит вне первого num символы, средство проверки правила рассматривает идентификаторы как идентичные. Можно изменить параметр num отдельно для внешних и внутренних идентификаторов.

Check Guidelines (-guidelines)Пороги для средств проверки сложности программного обеспеченияСложность программного обеспеченияСмотрите уменьшают сложность программного обеспечения при помощи средств проверки Polyspace

Похожие темы