С Polyspace®, можно проверять код C/C++ на нарушения кодирования правил, таких как MISRA C®:2012 правил. Соблюдение кодирования правил может сократить количество дефектов и улучшить качество вашего кода.
Polyspace может обнаружить нарушения этих правил:
MISRA C:2004
MISRA C:2012
MISRA® C++
JSF AV C++
AUTOSAR C++ 14 (только Bug Finder)
CERT® C (только Bug Finder)
CERT C++ (только Bug Finder)
ISO®/IEC TS 17961 (только Bug Finder)
Инструкции (только Bug Finder)
Задайте правила кодирования через опции анализа Polyspace. Когда вы запускаете Bug Finder или Code Prover, анализ ищет кодирование нарушений правила в дополнение к другим проверкам. Можно отключить другие проверки и искать кодирование нарушений правила только.
В пользовательском интерфейсе Polyspace (десктопные решения) опции находятся на панели Configuration под узлом Coding Standards & Code Metrics.
Для кода С используйте одну из этих опций:
Для сгенерированного кода включите опцию, характерную для сгенерированного кода.
Для сгенерированного кода включите опцию, характерную для сгенерированного кода.
Для Кода С++ используйте одну из этих опций:
Можно задать предопределенное подмножество правил, например, mandatory
для MISRA C:2012. Эти подмножества обычно задаются стандартом.
Можно также задать соглашения о присвоении имен для идентификаторов с помощью регулярных выражений. Смотрите Создают Пользовательские Правила Кодирования.
Вместо предопределенных подмножеств можно задать собственное подмножество правил из стандарта кодирования.
Пользовательский интерфейс (только десктопные решения)
Выберите стандарт кодирования. Из выпадающего списка для подмножества правил выберите from-file
. Нажмите Edit.
В окне Findings selection стандарт кодирования подсвечен на левой панели. На правой панели выберите правила, что вы хотите включать в свой анализ.
При выборе Guidelines> средства проверки Software Complexity, рассмотрите их пороги. Если пороги по умолчанию не приемлемы, задают подходящий порог в столбце Threshold. Смотрите Check guidelines (-guidelines)
.
При выборе правил Custom рассмотрите Pattern и Convention для правил. Смотрите Check custom rules (-custom-rules)
.
Когда вы сохраняете выборы правила, настройка сохранена в XML-файле, который можно снова использовать для нескольких исследований. Тот же файл содержит правила, выбранные для всех стандартов кодирования. Можно снова использовать этот файл через несколько проектов осуществить общие стандарты кодирования в команде или организации. Снова использовать этот файл в другом проекте в пользовательском интерфейсе Polyspace:
Выберите стандарт кодирования в настройке проекта. Из выпадающего списка для подмножества правил выберите from-file
.
Нажмите Edit и обзор к расположению файла. В качестве альтернативы введите имя файла в качестве аргумента для опции Set checkers by file (-checkers-selection-file)
.
Командная строка. С десктопными решениями Polyspace можно создать XML-файл стандарта кодирования в пользовательском интерфейсе и затем использовать этот файл для анализа командной строки. Предоставьте этому XML-файлу опцию Set checkers by file (-checkers-selection-file)
.
С Серверными продуктами Polyspace необходимо создать стандарт кодирования XML с нуля. В зависимости от стандарта, который вы хотите включить, сделайте writeable копию одного из файлов в
и выключите правила с помощью записей в XML-файле (все правила из стандарта включены в шаблоне). Здесь, polyspaceserverroot
\help\toolbox\bugfinder\examples\coding_standards_XML
корневая папка установки для Серверных продуктов Polyspace, например, polyspaceserverroot
C:\Program Files\Polyspace Server\R2019a
.
Например, чтобы выключить правило 8.1 MISRA C:2012, используйте эту запись в копии файла misra_c_2012_rules.xml
:
<standard name="MISRA C:2012"> ... <section name="8 Declarations and definitions"> ... <check id="8.1" state="off"> </check> ... </section> ... </standard>
При использовании средств проверки Инструкции задайте их порог между threshold
теги. Например, к активирует средство проверки Cyclomatic complexity exceeds threshold
и установленный порог для средства проверки к пять, используйте эту запись в копии guidelines.xml
:
<check id="SC18" state="on"> <threshold>5</threshold> </check>
Использовать XML-файл для анализа MISRA C:2012 в Bug Finder, введите:
polyspace-bug-finder -sources filename -misra3 from-file -checkers-selection-file misra_c_2012_rules.xml
Для полного списка идентификаторов правила и имен раздела, см.:
Примечание
Формат XML конфигурационного файла средства проверки может измениться в будущих релизах.
Проверять на кодирование стандартов только:
В Bug Finder отключите проверку дефектов. Используйте опцию Find defects (-checkers)
.
В Code Prover проверяйте на исходную податливость только. Используйте опцию Verification level (-to)
(Polyspace Code Prover).
Эти правила проверяются на более поздних этапах анализа Code Prover: правила 9.1, 13.7 MISRA C:2004, и 21.1, и правила 2.2, 9.1, 14.3 MISRA C:2012, и 18.1. Если вы останавливаете Code Prover при исходной проверке податливости, анализ не может найти все нарушения этих правил. Можно также видеть различие в результатах на основе выбора для опции Verification level (-to)
. Например, возможно, что Code Prover подозревает в первой передаче, что переменная может быть неинициализированной, но доказывает во второй передаче, что переменная инициализируется. В этом случае вы видите нарушение Правила 9.1 MISRA C:2012 в первой передаче, но не во второй передаче.
После анализа вы видите кодирующие стандартные нарушения на панели Results List. Выберите нарушение, чтобы видеть более подробную информацию о панели Result Details и исходный код на панели Source.
Нарушения кодирования стандартов обозначаются в исходном коде со значком.
Для дальнейших шагов смотрите Результаты анализа Анализа или Рассмотрите Результаты Polyspace Bug Finder в веб-браузере.
Можно сгенерировать шаблоны использования отчетов, которые явным образом заданы для кодирования стандартов. Используйте CodingStandards
шаблон. Этот шаблон:
Отчеты, только кодирующие стандартные нарушения в ваших результатах анализа, и, не используют другие типы результатов, такие как дефекты, ошибки времени выполнения или метрики кода.
Создает отдельную главу в отчете для каждого стандарта кодирования. глава предоставляет обзор всех нарушений стандарта и затем перечисляет каждое нарушение.
Чтобы задать шаблон отчета, используйте опцию Bug Finder and Code Prover report (-report-template)
.