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) | Типы данных |
| Правила, охватываемые этими шашками, включают логические типы. Если вы используете эту опцию, можно рассматривать пользовательские типы как эффективно логические. |
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 требует, чтобы внешние идентификаторы были различными. Если различие между двумя идентификаторами возникает за пределами первого | |
Check Guidelines (-guidelines) | Пороги для проверки сложности программного обеспечения | Комплексность программного обеспечения | Смотрите снижение сложности программного обеспечения при помощи Polyspace Checkers |