Изменение поведения Bug Finder Checkers по умолчанию

Polyspace® Bug Finder™ анализ проверяет код C/C + + на ошибки и нарушения внешних стандартов кодирования. По умолчанию шашки Bug Finder предназначены для:

  • Показывать как можно меньше ложных срабатываний.

  • Требуйте минимальной настройки перед.

Однако для конкретных проектов может потребоваться изменить поведение некоторых шашек по умолчанию. Например, вы можете захотеть обработать некоторые определяемые пользователем типы данных как эффективно логические или обнаружить гонки данных, включающие операции, которые Bug Finder рассматривает как атомарные по умолчанию.

Используйте эту тему для поиска изменений, разрешенных для шашек Bug Finder. Кроме того, можно искать эти опции в отчете анализа, чтобы увидеть, было ли изменено поведение шашек по умолчанию.

Обратите внимание, что:

  • Эти опции не включают и не отключают средство проверки.

    Чтобы включить или отключить определенные шашки, см. Раздел «Выбор конкретных дефектов Bug Finder».

  • Можно использовать эти опции исключительно для изменения поведения существующей проверки.

    Такие опции, как тип целевого процессора, опции многозадачности и внешние ограничения, также могут изменять поведение шашки. Однако изменение происходит как побочный эффект. Обычно эти опции задаются для точного отражения целевого окружения.

Дефектные шашки

ОпцияЗначение опцииШашки измененыМодификация
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 Checkers для поиска дефектов из значений Входа конкретной системы».
-code-behavior-specifications

XML- файл.

Записи в файл сопоставляют пользовательские функции с функциями из стандартной библиотеки.

Шашки, которые обнаруживают проблемы с функциями стандартной библиотекиСм. раздел «Расширение Bug Finder проверки функций стандартной библиотеки для пользовательских библиотек».

XML- файл.

Записи в XML- файл сопоставляют пользовательские примитивы параллелизма с таковыми, которые Bug Finder может автоматически обнаружить.

Дефекты параллелизма

См. раздел Расширение проверки дефектов параллелизма для неподдерживаемых многопоточных окружений.

XML- файл.

Записи в функциях списка файлов, которые необходимо запретить в исходном коде.

Use of a forbidden functionСмотрите Устаревшие или небезопасные Функции с использованием Bug Finder Checkers.

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)

Типы данных

  • MISRA C®Правила 2004 года 12.6, 13.2, 15.4

  • МИСРА C:2012 правила 10.1, 10.3, 10.5, 14.4, 16.7

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

Allowed pragmas (-allowed-pragmas)

Имена прагм

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

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

-code-behavior-specifications

XML- файл.

Записи в файл определяют пределы глобальных аспектов вашей программы, такие как максимальная глубина вложения в операторы потока управления.

MISRA C: 2012 Правило 1.1

Можно увеличить или уменьшить эти параметры проверки правил:

  • Максимально допустимую глубину вложения в операторах потока управления

  • Максимально допустимые уровни включения включают файлы

  • Максимальное количество констант, разрешенных в перечислении

  • Максимально допустимое количество макросов в модуле преобразования

  • Максимально допустимое количество представителей в структуре

  • Максимально допустимые уровни вложенности в структуре

XML- файл.

Записи в XML- файл определяют, сколько символов сравнивается, прежде чем рассматривать два идентификатора как разные.

MISRA C: 2012 Правила 5.1 - 5.5

Эти правила требуют уникальности определенных типов идентификаторов. Для образца правило 5.1 требует, чтобы внешние идентификаторы были различными.

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

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

Похожие темы