Анализ Finder™ ошибок Polyspace ® проверяет код C/C + + на наличие ошибок и нарушений внешних стандартов кодирования. По умолчанию шашки Bug Finder предназначены для:
Показать как можно меньше ложных срабатываний.
Требуется минимальная предварительная настройка.
Однако для конкретных проектов может потребоваться изменить поведение некоторых шашек по умолчанию. Например, некоторые определяемые пользователем типы данных могут рассматриваться как логические или обнаруживать гонки данных, связанные с операциями, которые Bug Finder считает атомарными по умолчанию.
Используйте этот раздел, чтобы найти изменения, разрешенные для шашек Bug Finder. Кроме того, эти опции можно найти в отчете об анализе, чтобы узнать, было ли изменено поведение шашек по умолчанию.
Обратите внимание, что:
Параметры не включают и не отключают средство проверки.
Сведения о включении или отключении определенных шашек см. в разделе Выбор шашек для обнаружения дефектов.
Эти параметры можно использовать исключительно для изменения поведения существующего средства проверки.
Такие параметры, как тип целевого процессора, параметры многозадачности и внешние ограничения, также могут изменять поведение средства проверки. Однако модификация происходит как побочный эффект. Эти параметры обычно задаются для точного отражения целевой среды.
| Выбор | Значение опции | Шашки изменены | Модификация |
|---|---|---|---|
Find defects (-checkers) | Гонка данных, включая атомарные операции (интерфейс пользователя) или 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-файле сопоставляют пользовательские примитивы параллелизма с примитивами, которые может автоматически обнаружить Bug Finder. | Дефекты параллелизма | См. раздел Распространение проверки дефектов параллелизма на неподдерживаемые многопоточные среды. | |
XML-файл. Элементы списка XML-файлов, которые требуется запретить в исходном коде. | Use of a forbidden function | См. раздел Пометка устаревших или небезопасных функций с помощью средств поиска ошибок. | |
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-файл. Записи в XML-файле определяют ограничения на глобальные аспекты программы, такие как максимальная глубина вложенности в операторах потока управления. | MISRA C: 2012 Правило 1.1 | Можно увеличить или уменьшить следующие параметры средства проверки правил:
|
XML-файл. Записи в XML-файле определяют, сколько символов сравнивается, прежде чем рассматривать два идентификатора как отдельные. | MISRA C: 2012 Правила 5.1 - 5.5 | Эти правила требуют уникальности определенных типов идентификаторов. Например, правило 5.1 требует, чтобы внешние идентификаторы были различными. Если разница между двумя идентификаторами возникает после первого | |
Check Guidelines (-guidelines) | Пороговые значения для проверки сложности программного обеспечения | Сложность программного обеспечения | См. Снижение сложности программного обеспечения с помощью средств проверки в полиспейсе |