С 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-файл в пользовательском интерфейсе и затем использовать этот файл в анализе командной строки. Предоставьте этому XML-файлу опцию Set checkers by file (-checkers-selection-file)
.
С Серверными продуктами Polyspace необходимо создать стандарт кодирования XML с нуля. В зависимости от стандарта, который вы хотите включить, сделайте writeable копию одного из файлов в
и выключите правила с помощью записей в XML-файле (все правила из стандарта включены в шаблоне). Здесь, polyspaceserverroot
\help\toolbox\polyspace_bug_finder_server\examples\coding_standards_XML
корневая папка установки для Серверных продуктов Polyspace, например, polyspaceserverroot
C:\Program Files\Polyspace Server\R2019a
.
Например, чтобы выключить MISRA C: 2 012 правил 8.1, используйте эту запись в копии файла 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>
Использовать XML-файл в MISRA C: 2 012 анализов в Средстве поиска Ошибки, введите:
polyspace-bug-finder -sources filename -misra3 from-file -checkers-selection-file misra_c_2012_rules.xml
Для полного списка идентификаторов правила и имен раздела, см.:
AUTOSAR C++ 14 правил (Polyspace Bug Finder Access)
CERT C правила и рекомендации (Polyspace Bug Finder Access)
CERT правила C++ (Polyspace Bug Finder Access)
Правила ISO/IEC TS 17961 (Polyspace Bug Finder Access)
Пользовательские правила кодирования (Polyspace Bug Finder Access)
JSF правила C++ (Polyspace Bug Finder Access)
MISRA C:2004 и правила AGC AC MISRA (Polyspace Bug Finder Access)
Директивы MISRA C:2012 и правила (Polyspace Bug Finder Access)
MISRA C ++:2008 правил (Polyspace Bug Finder Access)
Формат 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.
Нарушения кодирования стандартов обозначаются в исходном коде со значком.
Для дальнейших шагов смотрите Результаты Анализа в Polyspace Bug Finder Access (Polyspace Bug Finder Access).
Можно сгенерировать шаблоны использования отчетов, которые явным образом заданы для кодирования стандартов. Используйте CodingStandards
шаблон. Этот шаблон:
Отчеты, только кодирующие стандартные нарушения в ваших результатах анализа, и, не используют другие типы результатов, такие как дефекты, ошибки времени выполнения или метрики кода.
Создает отдельную главу в отчете для каждого стандарта кодирования. глава предоставляет обзор всех нарушений стандарта и затем перечисляет каждое нарушение.
Чтобы задать шаблон отчета, используйте опцию Bug Finder and Code Prover report (-report-template)
.