С Polyspace® можно проверять, что код C/C++ для нарушений кодирования правил, таких как MISRA C®:2012 управляет. Соблюдение кодирования правил может сократить количество дефектов и улучшить качество вашего кода.
Polyspace может обнаружить нарушения этих правил:
MISRA C: 2004
MISRA C: 2012
MISRA® C ++
JSF AV C++
AUTOSAR C++ 14 (Только Средство поиска ошибки)
CERT® C (Только Средство поиска ошибки)
CERT C++ (Только Средство поиска ошибки)
ISO®/IEC TS 17961 (Только Средство поиска ошибки)
![]()
![]()

![]()
Задайте правила кодирования через аналитические опции Polyspace. Когда вы запускаете Программу автоматического доказательства Средства поиска или Кода Ошибки, анализ ищет кодирование нарушений правила в дополнение к другим проверкам. Можно отключить другие проверки и искать кодирование нарушений правила только.
В пользовательском интерфейсе Polyspace (десктопные решения) опции находятся на панели Configuration под узлом Coding Standards & Code Metrics.
Для кода С используйте одну из этих опций:
Для сгенерированного кода включите опцию, характерную для сгенерированного кода.
Для сгенерированного кода включите опцию, характерную для сгенерированного кода.
Для Кода С++ используйте одну из этих опций:
Можно задать предопределенное подмножество правил, например, mandatory для MISRA C: 2012. Эти подмножества обычно задаются стандартом.
Можно также задать соглашения о присвоении имен для идентификаторов с помощью регулярных выражений. Смотрите Создают Пользовательские Правила Кодирования.
![]()
Вместо предопределенных подмножеств можно задать собственное подмножество правил из стандарта кодирования.
![]()
Пользовательский интерфейс (только десктопные решения)
Выберите стандарт кодирования. Из выпадающего списка для подмножества правил выберите from-file. Нажмите Edit.
В окне Findings selection стандарт кодирования подсвечен на левой панели. На правой панели выберите правила, что вы хотите включать в свой анализ.
![]()

![]()
Когда вы сохраняете выборы правила, настройка сохранена в XML-файле, который можно снова использовать для нескольких исследований. Тот же файл содержит правила, выбранные для всех стандартов кодирования. Можно снова использовать этот файл через несколько проектов осуществить общие стандарты кодирования в команде или организации. Снова использовать этот файл в другом проекте в пользовательском интерфейсе Polyspace:
Выберите стандарт кодирования в настройке проекта. Из выпадающего списка для подмножества правил выберите from-file.
Нажмите Edit и обзор к расположению файла. В качестве альтернативы введите имя файла в качестве аргумента для опции Set checkers by file (-checkers-selection-file).
![]()
Командная строка. С десктопными решениями Polyspace можно создать кодирующий стандартный XML-файл в пользовательском интерфейсе и затем использовать этот файл в анализе командной строки.
С серверными продуктами Polyspace необходимо создать стандарт кодирования XML с нуля. Используйте файл StandardsConfiguration.xml в как шаблон и включают правила с помощью записей в XML-файле. Здесь, polyspaceserverroot\polyspace\examples\cxx\Bug_Finder_Example\sources корневая папка установки для Серверных продуктов Polyspace, например, polyspaceserverrootC:\Program Files\Polyspace Server\R2019a.
Например, чтобы включить MISRA C: 2 012 правил 8.1, используйте эту запись:
<standard name="MISRA C:2012">
...
<section name="8 Declarations and definitions">
...
<check id="8.1" state="on">
</check>
...
</section>
...
</standard>Для полного списка идентификаторов правила и имен раздела, см.:
Формат XML конфигурационного файла средства проверки может измениться в будущих релизах.
![]()
Проверять на кодирование стандартов только:
В Средстве поиска Ошибки отключите проверку дефектов. Используйте опцию Find defects (-checkers).
В Программе автоматического доказательства Кода проверяйте на исходную податливость только. Используйте опцию Verification level (-to).
Эти правила проверяются на более поздних этапах анализа Программы автоматического доказательства Кода: правила 9.1, 13.7 MISRA C:2004, и 21.1, и правила 2.2, 9.1, 14.3 MISRA C:2012, и 18.1. Если вы останавливаете Программу автоматического доказательства Кода при исходной проверке податливости, анализ не может найти все нарушения этих правил. Можно также видеть различие в результатах на основе выбора для опции Verification level (-to). Например, возможно, что Программа автоматического доказательства Кода подозревает в первой передаче, что переменная может быть неинициализированной, но доказывает во второй передаче, что переменная инициализируется. В этом случае вы видите нарушение Правила 9.1 MISRA C:2012 в первой передаче, но не во второй передаче.
![]()
![]()

![]()
После анализа вы видите кодирующие стандартные нарушения на панели Results List. Выберите нарушение, чтобы видеть более подробную информацию о панели Result Details и исходный код на панели Source.
Нарушения кодирования стандартов обозначаются в исходном коде со
значком.
Для дальнейших шагов смотрите Результаты анализа Анализа.
![]()
Можно сгенерировать шаблоны использования отчетов, которые явным образом заданы для кодирования стандартов. Используйте CodingStandards шаблон. Этот шаблон:
Отчеты, только кодирующие стандартные нарушения в ваших результатах анализа, и, не используют другие типы результатов, такие как дефекты, ошибки времени выполнения или метрики кода.
Создает отдельную главу в отчете для каждого стандарта кодирования. глава предоставляет обзор всех нарушений стандарта и затем перечисляет каждое нарушение.
Чтобы задать шаблон отчета, используйте опцию Bug Finder and Code Prover report (-report-template).
![]()