Когда вы запускаете Polyspace® как часть ваших процессов разработки программного обеспечения, ваши аналитические скрипты должны быть предварительно сконфигурированы для новых представлений кода. Например, новые исходные файлы должны быть автоматически включены в анализ Polyspace. Чтобы держать аналитическую настройку в курсе с новыми представлениями, можно усилить существующие артефакты, такие как команда сборки (make-файлы) и создать аналитическую настройку на лету, когда новые представления происходят.
Аналитическая настройка состоит из двух частей:
Опции связаны с исходным кодом и целью, такие как размеры типа данных, макроопределения, циклические задачи и прерывания, и так далее.
Опции связаны с анализом, такие как средства проверки, предположения верификации кода, и так далее.
Наиболее распространенные опции, связанные с исходным кодом и целью:
-sources-list-file
: Задайте текстовый файл, содержащий один исходный файл на строку.
-I
: Задайте папки, содержащие включенные заголовочные файлы.
Compiler (-compiler)
: Задайте компилятор, используемый для создания вашего исходного кода.
Target processor type (-target)
: Задайте размеры типов данных и порядка байтов путем выбора предопределенного целевого процессора.
Preprocessor definitions (-D)
: Замените нераспознанный код в целях анализа Polyspace. Вы обычно используете эту опцию, если анализ показывает ошибки компиляции от специфичных для компилятора ключевых слов и макросов.
Constraint setup (-data-range-specifications)
: Задайте внешние ограничения на глобальные переменные и функциональные интерфейсы. Опция обычно полезна для более точного анализа Программы автоматического доказательства Кода.
Для полного списка опций см.:
Аналитические опции (Polyspace Code Prover Server)
В непрерывном рабочем процессе интегрирования вы обычно не задаете аргументы опции явным образом. Ваша команда сборки содержит технические требования для источников, компилятор, макроопределения и так далее. Запуститесь polyspace-configure
команда, чтобы извлечь эти технические требования из вашей команды сборки и создать файл опций. Например, если вы используете make
чтобы создать ваш исходный код, запустите анализ можно следующим образом:
polyspace-configure -output-options-file polyspace_opts make polyspace-bug-finder-server -options-file polyspace_opts polyspace-code-prover-server -options-file polyspace_opts |
Первая команда извлекает входные и выходные технические требования путем выполнения инструкций в make-файле и создает аналитический файл опций. Вторые и третьи команды запускают анализ Программы автоматического доказательства Средства поиска и Кода Ошибки с файлом опций. Смотрите Создают Аналитическую Настройку Polyspace из Команды Сборки.
Если вы не можете извлечь опции из своей команды сборки, задайте опции явным образом. Можно создать некоторые аргументы опции на лету от новых представлений. Например, аргумент для опции -sources-list-file
текстовый файл, который перечисляет источники. Можно обновить этот текстовый файл на основе любого нового исходного файла, добавленного к репозиторию исходного кода.
Если необходимо задать целевые и параметры компилятора явным образом, вы не можете разобраться во всех опциях на первом показе. Найти правильную комбинацию опций:
Задайте опции Compiler (-compiler)
и Target processor type (-target)
в вашем файле опций.
Скомпилируйте код со своим компилятором и зафиксируйте все ошибки компиляции. Затем запуск только часть компиляции анализа Polyspace.
В Средстве поиска Ошибки отключите все средства проверки. Задайте -checkers none
в файле опций. Смотрите Find defects (-checkers)
.
В Программе автоматического доказательства Кода остановите анализ после компиляции. Задайте -to compile
в файле опций. Смотрите Verification level (-to)
(Polyspace Code Prover Server).
Если вы сталкиваетесь с ошибками компиляции, вам придется работать вокруг ошибок с опциями Polyspace. Например, если вы видите ошибку компиляции потому что макро-_WIN32
задан с параметром компилятора, но Polyspace рассматривает макрос как неопределенный по умолчанию, эмулируйте свой параметр компилятора с опцией Polyspace -D _WIN32
. Смотрите Цель и Компилятор, Макросы и Параметры среды для целевых и параметров компилятора.
Если вы фиксируете все ошибки компиляции с аналитическими опциями Polyspace, ваш файл опций подготовлен с правильным набором опций Polyspace для анализа.
Если у вас есть установка десктопных решений, Polyspace Bug Finder™ и/или Polyspace Code Prover™, можно выполнить пробные прогоны в пользовательском интерфейсе десктопных решений. Можно затем сгенерировать файл опций от настройки, заданной в пользовательском интерфейсе. Пользовательский интерфейс обеспечивает различные функции, такие как:
Ассистент компиляции, который предлагает обходные решения для некоторых ошибок компиляции,
Автоматическая генерация XML-файла для ограничительной спецификации,
Контекстно-зависимая справка для опций,
Смотрите конфигурируют аналитические опции Polyspace в пользовательском интерфейсе и генерируют скрипты.
Некоторые опции, связанные с анализом Polyspace:
Средство поиска ошибки
Find defects (-checkers)
: Задайте средства проверки, чтобы включить для анализа Средства поиска Ошибки.
Check MISRA C:2012 (-misra3)
и другие опции, связанные с внешними стандартами: Задайте внешний стандарт и предопределенное подмножество того стандарта.
Set checkers by file (-checkers-selection-file)
: Задайте пользовательское подмножество правил из внешних стандартов.
Bug Finder and Code Prover report (-report-template)
: Укажите, что PDF, Word или отчет HTML должны быть сгенерированы наряду с результатами анализа и задать шаблон для отчета.
Run Bug Finder or Code Prover analysis on a remote cluster (-batch)
: Разгрузите анализ к другому серверу. Смотрите Разгружают Анализ Polyspace с Непрерывного Сервера интеграции на Другой Сервер.
Программа автоматического доказательства кода
Overflow mode for signed integer (-signed-integer-overflows)
(Polyspace Code Prover Server): Задайте поведение после переполнения: остановите анализ или продолжите перенос.
Detect stack pointer dereference outside scope (-detect-pointer-escape)
(Polyspace Code Prover Server): Задайте, должен ли анализ найти случаи, куда функция возвращает указатель на одну из его локальных переменных.
Detect uncalled functions (-uncalled-function-checks)
(Polyspace Code Prover Server): Задайте, должен ли анализ отметить функции, которые не вызваны прямо или косвенно от основного или другой функции точки входа.
Bug Finder and Code Prover report (-report-template)
(Polyspace Code Prover Server): Укажите, что PDF, Word или отчет HTML должны быть сгенерированы наряду с результатами анализа и задать шаблон для отчета.
Run Bug Finder or Code Prover analysis on a remote cluster (-batch)
(Polyspace Code Prover Server): Разгрузите анализ к другому серверу. Смотрите Разгружают Анализ Polyspace с Непрерывного Сервера интеграции на Другой Сервер (Polyspace Code Prover Server).
Средства проверки и другие опции, связанные с анализом Polyspace, могут быть применимы больше чем к одному проекту. Чтобы выпустить универсальные стандарты через проекты, можно снова использовать это подмножество аналитических опций. При выполнении анализа задайте два файла опций, один содержащий опции, характерные для текущего проекта и другого содержащего допускающие повторное использование опции. Можно извлечь файл прав преимущественной покупки из команды сборки, но явным образом создать второй файл опций.
Например, в этом примере, polyspace-bug-finder-server
команда использует два файла опций: compile_opts
сгенерированный от make-файла и runbf_opts
созданный вручную. Все допускающие повторное использование опции могут быть заданы в runbf_opts
.
polyspace-configure -output-options-file compile_opts make polyspace-bug-finder-server -options-file compile_opts -options-file runbf_opts polyspace-code-prover-server -options-file compile_opts -options-file runcp_opts |
Если та же опция появляется в двух файлах опций, последний экземпляр опции рассматривается. В предыдущем примере, если опция происходит в обоих compile_opts
и runbf_opts
, вхождение в runbf_opts
рассматривается. Если вы хотите заменить предыдущие случаи опции, используйте файл дополнительных опций со своими переопределениями. Добавьте этот файл опций в конец аналитической команды.
polyspace-bug-finder-server
| polyspace-configure