polyspaceConfigure

Создайте проект Polyspace из системы сборки в командной строке MATLAB

Описание

пример

polyspaceConfigure buildCommand отслеживает вашу систему сборки и создает Polyspace® проект с информацией, собранной из вашей системы сборки. Запустить анализ на проекте Polyspace можно только в пользовательском интерфейсе десктопных продуктов Polyspace.

пример

polyspaceConfigure -option value buildCommand отслеживает вашу систему сборки и использует -option value для изменения операции по умолчанию polyspaceConfigure. Задайте модификаторы перед buildCommand, в противном случае они рассматриваются как опции в самой команде сборки.

Примечание

Прежде чем запускать Polyspace из MATLAB®необходимо связать установки Polyspace и MATLAB. См. «Интеграция Polyspace с MATLAB и Simulink».

Примеры

свернуть все

В этом примере показано, как создать проект Polyspace, если вы используете команду make targetName buildOptions чтобы создать исходный код. В этом примере создается проект Polyspace, который можно открыть только в пользовательском интерфейсе десктопных продуктов Polyspace.

Создайте проект Polyspace, задающий уникальное имя проекта. Используйте -B или -W makefileName опция с make так, чтобы все необходимые цели в make-файле были переделаны.

polyspaceConfigure  -prog myProject ...
          make -B targetName buildOptions

Откройте проект Polyspace в Project Browser.

polyspaceBugFinder('myProject.psprj')

В этом примере показано, как создать различные проекты Polyspace из того же трассировки вашей системы сборки. Можно задать, какие исходные файлы будут включены в каждый проект. В этом примере создается проект Polyspace, который можно открыть только в пользовательском интерфейсе десктопных продуктов Polyspace.

Проследите систему сборки, не создавая проект Polyspace, задав опцию -no-project. Чтобы убедиться, что все необходимые цели в вашем make-файле переделаны, используйте соответствующую make опция команды сборки, для образца -B.

polyspaceConfigure -no-project make -B;

polyspace-configure сохраняет информацию о кэше и трассировке сборки в расположениях по умолчанию в текущей папке. Чтобы хранить информацию о кэше и создавать трассировку в другом месте, задайте опции -cache-path и -build-trace.

Сгенерируйте проекты Polyspace с помощью информации трассировки сборки из предыдущего шага. Укажите имя проекта и используйте -include-sources или -exclude-sources опция, чтобы выбрать файлы, которые будут включены в каждый проект.

polyspaceConfigure -no-build -prog myProject ...
-include-sources "glob_pattern";

glob_pattern является шаблоном glob, который соответствует папкам или файлам, которые вы фильтруете в или вне вашего проекта. Чтобы убедиться, что интерпретатор не расширяет шаблоны glob, которые вы передаете polysapce-configure, заключайте их в двойные кавычки. Дополнительные сведения о поддерживаемом синтаксисе шаблонов glob см. в полипространстве -настройке синтаксиса выбора исходных Файлов .

Если вы задали опции -build-trace и -cache-path на предыдущем шаге задайте их еще раз.

Удалите файл трассировки и папку кэша.

rmdir('polyspace_configure_cache', 's');
delete polyspace_configure_built_trace;
 
Если вы использовали опции -build-trace и -cache-pathиспользуйте пути и имена файлов из этих опций.

В этом примере показано, как запустить анализ Polyspace, если вы используете команду build, такую как make targetName buildOptions чтобы создать исходный код. В этом примере вы используете polyspaceConfigure проследить систему сборки, но не создавать проект Polyspace. Вместо этого вы создаете файл опций, который можно использовать, чтобы запустить анализ Polyspace из командной строки.

Создайте файл опций Polyspace, задающий -output-options-file команда. Используйте -B или -W makefileName опция с make так, чтобы все обязательные цели в make-файле были переделаны.

polyspaceConfigure -output-options-file ... 
         myOptions make -B targetName buildOptions

Используйте файл опций, который вы создали, чтобы запустить анализ Polyspace в командной строке:

polyspaceBugFinder -options-file myOptions

Входные параметры

свернуть все

Команда build задается именно так, как вы используете для создания исходного кода.

Пример: make -B, сделать -W makefileName

Основные опции

ОпцияАргументОписание
-progИмя проекта

Имя проекта, которое появляется в пользовательском интерфейсе Polyspace. Значение по умолчанию является polyspace.

Если вы не используете опцию -output-project, а -prog аргумент также задает имя проекта.

Пример: -prog myProject создает проект с именем myProject в пользовательском интерфейсе. Если вы не используете опцию -output-project, имя проекта также myProject.psrprj.

-authorИмя автора

Имя автора проекта.

Пример: -author jsmith

-output-projectПуть

Имя файла проекта и расположение для сохранения проекта. По умолчанию это файл polyspace.psprj в текущей папке.

Пример: -output-project ../myProjects/project1 создает проект project1.psprj в папке с относительным путем ../myProjects/.

-output-options-fileИмя файла

Опция для создания файла опций анализа Polyspace. Используйте этот файл для анализа в командной строке с помощью одной из следующих команд:

  • polyspace-bug-finder

  • polyspace-code-prover

  • polyspace-bug-finder-server

  • polyspace-code-prover-server

  • polyspace-bug-finder-access

-allow-build-errorНичего

Опция создания проекта Polyspace, даже если ошибка возникает в процессе сборки.

Если происходит ошибка, в журнале трассировки сборки отображается следующее сообщение:

polyspace-configure (polyspaceConfigure) 
   ERROR: build command 
   command_name fail [status=status_value]
command_name - имя команды сборки, которое вы используете и status_value - ненулевое выходное состояние или уровень ошибки, указывающий, какая ошибка произошла в процессе сборки.

Эта опция игнорируется при использовании -compilation-database.

-allow-overwriteНичего

Опция перезаписи проекта с таким же именем, если он существует.

По умолчанию polyspace-configure (polyspaceConfigure) выдает ошибку, если проект с таким же именем уже существует в папке выхода. Используйте эту опцию для перезаписи проекта.

-no-console-output

-silent (по умолчанию)

-verbose

Ничего

Опция подавления или отображения дополнительных сообщений о запуске polyspace-configure (polyspaceConfigure).

  • -no-console-output - Подавить все выходы, включая ошибки и предупреждения.

  • -silent (по умолчанию) - Отображать только ошибки и предупреждения.

  • -verbose - Показать все сообщения.

Если вы задаете больше одной из этих опций, применяется самая подробная опция.

Эти опции игнорируются, если они используются в комбинации с -easy-debug.

-helpНичего

Опция отображения полного списка polyspace-configure (polyspaceConfigure) команды

-debugНичего

Опция хранения отладки информации для использования MathWorks® техническая поддержка.

Эта опция была заменена опцией -easy-debug.

-easy-debugПуть

Опция для хранения отладки информации для использования технической поддержкой MathWorks.

После polyspace-configure (polyspaceConfigure) run, указанный путь содержит zipped файл, заканчивающийся на pscfg-output.zip. Если при запуске не удалось создать полный проект Polyspace или файл опций, отправьте этот zipped-файл в службу технической поддержки MathWorks для дальнейшей отладки. Zipped-файл не содержит исходных файлов, прослеживаемых в сборке. См. также «Ошибки в создании проектов из систем сборки».

Опции для создания нескольких модулей

Эти опции несовместимы с -compilation-database.

ОпцияАргументОписание
-moduleНичего

Опция для создания отдельного файла опций для каждого двоичного файла, созданного в системе сборки.

Можно создать только отдельные файлы опций для разных двоичных файлов. Вы не можете создать несколько модулей в проекте Polyspace (для выполнения в пользовательском интерфейсе Polyspace).

Используйте эту опцию только для систем сборки, которые используют GNU® и Visual C++® компиляторы.

Смотрите также Modularize Polyspace Analysis при помощи Команда.

-output-options-pathИмя пути

Расположение, где сохраняются файлы сгенерированных опций. Используйте эту опцию вместе с опцией -module.

Файлы опций названы в честь двоичных файлов, созданных в системе сборки.

Дополнительные опции

ОпцияАргументОписание
-compilation-databaseПуть и имя файла

Расположение и имя файла базы данных компиляции JSON (JSON CDB). Вы генерируете этот файл из системы сборки, например, с помощью флага -DCMAKE_EXPORT_COMPILE_COMMANDS=1 с cmake. Файл содержит вызовы компилятора для всех модулей перевода в ваших проектах. Для получения дополнительной информации см. JSON Compilation Database. polyspace-configure использует содержимое этого файла для получения информации о вашей системе сборки. Извлеченные пути компилятора в CDB JSON должны быть доступны из пути, где вы запускаете polyspace-configure.

Вы не задаете команду сборки, когда используете эту опцию.

Системы сборки и компиляторы поддерживают генерацию CDB JSON:

  • CMake

  • Bazel

  • Лязг

  • Ниндзя

  • Qbs

  • WAF

Эта опция несовместима с -no-project и с опциями для создания нескольких модулей.

Опции управления кэшем, -allow-build-error, и -no-build игнорируются при использовании этой опции.

-compiler-configПуть и имя файла

Расположение и имя файла строения компилятора.

Файл должен быть в определенном формате. Для руководства смотрите существующие файлы строения в polyspaceroot\ polyspace\configure\compiler _ configuration\. Дополнительные сведения о содержимом файла см. в разделе Компилятор, не поддерживаемый для создания проектов из систем сборки.

Пример: -compiler-configuration myCompiler.xml

-no-projectНичего

Опция трассировки системы сборки без создания проекта Polyspace и сохранение информации трассировки сборки.

Используйте эту опцию, чтобы сохранить информацию трассировки сборки для последующего запуска polyspace-configure (polyspaceConfigure) с -no-build опция.

Эта опция несовместима с -compilation-database.

-no-buildНичего

Опция создания проекта Polyspace с использованием ранее сохраненной информации трассировки сборки.

Чтобы использовать эту опцию, вы должны иметь информацию трассировки сборки, сохраненную при более раннем запуске polyspace-configure (polyspaceConfigure) с -no-project опция.

Если вы используете эту опцию, вам не нужно задавать buildCommand аргумент.

Эта опция игнорируется при использовании -compilation-database.

-no-sourcesНичего

Опция для создания файла опций Polyspace, который не содержит спецификаций исходных файлов.

Используйте эту опцию, когда вы собираетесь задать исходные файлы другими способами. Например, вы можете использовать эту опцию, когда:

  • Выполнение Polyspace на специфичном для AUTOSAR коде.

    Вы хотите создать файл опций, который отслеживает вашу команду сборки для опций компилятора:

    -output-options-file options.txt -no-sources
    Вы позже добавляете этот файл опций при извлечении имен исходных файлов из спецификаций ARXML и выполнении последующего анализа Code Prover с polyspace-autosar (Polyspace Code Prover)
    -extra-options-file options.txt

    Смотрите также Run Polyspace on AUTOSAR Code Using Build Command (Polyspace Code Prover).

  • Запуск Polyspace в Eclipse™.

    Ваши исходные файлы уже заданы в проекте Eclipse. При выполнении анализа Polyspace необходимо задать файл параметров, который имеет только опции компиляции.

-extra-project-optionsОпции для последующего анализа Polyspace. Для образца, "-stubbed-pointers-are-unsafe".

Опции, которые используются для последующего анализа Polyspace.

После создания проекта Polyspace можно изменить некоторые опции по умолчанию в проекте. Также можно передать эти опции при трассировке команды build. Флаг -extra-project-options позволяет пройти дополнительные опции.

Задайте несколько опций в списке разделенных пространствами, например "-allow-negative-operand-in-shift -stubbed-pointers-are-unsafe".

Предположим, что вы должны задать опцию -stubbed-pointers-are-unsafe для каждого созданного проекта Polyspace. Вместо открытия каждого проекта и настройки опции можно использовать этот флаг при создании проекта Polyspace:

-extra-project-options "-stubbed-pointers-are-unsafe"

Список доступных опций см. в:

Если вы создаете файл опций вместо проекта Polyspace из команды build, не используйте этот флаг.

-tmp-pathПутьРасположение папки, в которой хранятся временные файлы.
-build-traceПуть и имя файла

Расположение и имя файла, в котором хранится информация о сборке. Значение по умолчанию является ./polyspace_configure_build_trace.log.

Пример: -build-trace ../build_info/trace.log

-include-sources

-exclude-sources

Шаблон Глоба

Опция, чтобы указать, какие исходные файлы polyspace-configure (polyspaceConfigure) включает в сгенерированный проект или исключает из него. Можно объединить обе опции вместе.

Исходный файл включается, если путь к файлу соответствует шаблону glob, которому вы передаете -include-sources.

Исходный файл исключается, если путь к файлу совпадает с шаблоном glob, которому вы передаете -exclude-sources.

-print-included-sources

-print-excluded-sources

Ничего

Опция печати списка исходных файлов, которые polyspace-configure (polyspaceConfigure) включает в сгенерированный проект или исключает из него. Можно объединить обе опции вместе. Полный путь к каждому файлу в выход отображается на отдельной линии.

Используйте эту опцию, чтобы устранить проблемы с шаблонами glob, которые вы передаете -include-sources или -exclude-sources. Вы можете увидеть, какие файлы соответствуют шаблону, в который вы передаете -include-sources или -exclude-sources.

-compiler-cache-pathПуть к папке

Укажите путь к папке, где polyspace-configure ищет или хранит файлы кэша компилятора. Если папка не существует, polyspace-configure создает его.

По умолчанию Polyspace ищет и хранит кэши компилятора под этими путями к папке:

  • Windows®

    %appdata%\Mathworks\R20xxY\Polyspace

  • Linux®

    ~/.matlab/R20xxY/Polyspace

  • Mac

    ~/Library/Application Support/MathWorks/MATLAB/R20xxY/Polyspace

R20xxY - релиз продукта Polyspace, например R2020b.

-no-compiler-cacheНичего

Используйте эту опцию, если вы не хотите, чтобы Polyspace кэшировал информацию о строении компилятора или использовал существующий кэш для строения компилятора.

По умолчанию, при первом запуске polyspace-configure при определенном строении компилятора Polyspace запрашивает у компилятора размер основных типов, определения макросов компилятора и другую информацию о строении компилятора, затем кэширует эту информацию. Polyspace повторно использует кэшированную информацию в последующих запусках polyspace-configure для сборок, которые используют то же строение компилятора.

-reset-compiler-cache-entryНичегоИспользуйте эту опцию, чтобы запросить у компилятора текущее строение и обновить запись в файле кэша, которая соответствует этому строению. Другие записи строения компилятора в кэше не обновляются.
-clear-compiler-cacheНичего

Используйте эту опцию, чтобы удалить все строения компилятора, хранящиеся в файле кэша.

Если вы также задаете команду сборки или -compilation-database, polyspace-configure вычисляет и кэширует информацию о строении компилятора текущего запуска, кроме тех случаев, когда вы задаете -no-project или -no-compiler-cache.

-import-macro-definitions

none

from-whitelist

from-source-tokens

Используйте эту опцию, чтобы задать, как polyspace-configure запрашивает у компилятора определения макросов.

Можно задать:

  • none - Polyspace не запрашивает у компилятора определения макросов. Определения макросов необходимо предоставить вручную.

  • from-whitelist - Polyspace использует внутренний белый список, чтобы запросить у компилятора определения макросов.

    Polyspace использует белый список по умолчанию, когда вы используете опцию -compilation-database.

  • from-source-tokens (по умолчанию, кроме тех случаев, когда вы используете -compilation-database ) - Polyspace использует каждое не ключевое слово, лексема в исходном коде, чтобы запросить у компилятора определения макросов.

-options-for-sources-delimiterОдин символ

Укажите диафрагму опций, который будет использоваться, когда несколько опций анализа связаны с одним исходным файлом с помощью -options-for-sources опция. Как правило, -options-for-sources опция использует точку с запятой в качестве диафрагмы.

См. также -options-for-sources.

Опции управления кэшем

Эти опции в первую очередь полезны для отладки. Используйте опции, если polyspace-configure (polyspaceConfigure) сбой, и служба технической поддержки MathWorks просит вас использовать эту опцию и предоставить кэшированные файлы. Начиная с R2020a, опция -easy-debug обеспечивает более легкий способ предоставления отладочной информации. Обратитесь в службу технической поддержки о проблемах с выполняемым Polyspace.

Эти опции игнорируются при использовании -compilation-database.

ОпцияАргументОписание

-no-cache

-cache-sources (по умолчанию)

-cache-all-text

-cache-all-files

Ничего

Опция для выполнения одного из следующих действий:

  • -no-cache: Не создавать кэш

  • -cache-sources: Кэшировать текстовые файлы, временно созданные во время сборки для дальнейшего использования polyspace-configure (polyspaceConfigure).

  • -cache-all-text: Кэшировать все текстовые файлы, включая источники и заголовки.

  • -cache-all-files: Кэшировать все файлы, включая двоичные файлы.

Обычно вы кэшируете временные файлы, созданные командой build, чтобы решить проблемы при трассировке команды.

-cache-pathПуть

Расположение папки, в которой хранится информация о кэше.

При трассировке сборки Visual Studio (devenv.exe), если вы видите ошибку:

path is too long
попробовать использовать более короткий путь для этой опции, чтобы обойти ошибку.

Пример: -cache-path ../cache

-keep-cache

-no-keep-cache (по умолчанию)

Ничего

Опция сохранения или очистки информации о кэше после polyspace-configure (polyspaceConfigure) завершает выполнение.

Если polyspace-configure (polyspaceConfigure) не удается, вы можете предоставить эту информацию о кэше технической поддержке в целях отладки.

Введенный в R2013b