Polyspace® Code Prover™ является звуковым инструментом статического анализа, который доказывает отсутствие переполнения, разделитесь на нуль, за пределы доступ к массиву и определенные другие ошибки времени выполнения в исходном коде C++ и C. Анализ Code Prover приводит к результатам, не требуя выполнения программы, отладки кода или тестов. Code Prover использует семантический анализ и абстрактную интерпретацию на основе формальных методов, чтобы определить поток управления и поток данных в коде. Можно использовать Code Prover на рукописном коде, сгенерированном коде или комбинации двух. В результатах анализа на каждую операцию наносят цветную маркировку, чтобы указать, свободно ли это от ошибок времени выполнения, которые, как доказывают, перестали работать, недостижимый, или бездоказательный.
Можно запустить Code Prover на коде C/C++ от пользовательского интерфейса Polyspace в поддерживаемой среде разработки (IDE), такой как скрипты использования или Eclipse™. См.:
Запустите Polyspace в пользовательском интерфейсе
Если это - ваш первый раз с помощью Polyspace, вы можете хотеть начать с пользовательского интерфейса Polyspace. Можно получить справку от функций, таких как мастер настройки проекта, помог настройке и обобщил аналитический журнал.
Запустите Polyspace на командной строке Linux или Windows
Если вы настраиваете проект в пользовательском интерфейсе Polyspace и завершаете несколько пробных прогонов, можно экспортировать настройку в скрипты, которые вы запускаете автоматически или по требованию. Можно также запустить анализ Polyspace непосредственно из командной строки в операционной системе. Можно затем сохранить команды в пакетных файлах (Windows) или сценарии оболочки (Linux) для более поздних запусков. Если при запуске Серверные продукты Polyspace с помощью инструментов непрерывной интеграции, таких как Jenkins, можно переиспользовать скрипты из десктопных решений Polyspace.
Если вы знакомы с рабочим Polyspace из командной строки, можно создать пункты меню в IDE, которые запускают скрипты и запускают анализ Polyspace в один клик. В Eclipse и основанных на Eclipse IDE, можно установить плагин Polyspace, который не требует никакой дополнительной настройки вообще. Когда вы запускаете Polyspace от плагина Eclipse, аналитическая настройка создается непосредственно из вашего проекта Eclipse.
Если у вас есть установка MATLAB, особенно легко записать скрипты, чтобы запустить анализ Polyspace. Вы извлекаете всю пользу из сценариев в среде MATLAB, например, автоматической справке на синтаксисах функций. После анализа можно создать собственную визуализацию результатов с помощью графики MATLAB и инструментов визуализации.
Чтобы выполнить шаги в этом примере, скопируйте файлы |
Дважды кликните polyspace
исполняемый файл в
. Здесь, polyspaceroot
\polyspace\bin
папка установки Polyspace, например, polyspaceroot
C:\Program Files\Polyspace\R2020a
. См. также Папку Установки.
Если вы настраиваете ярлык Polyspace на вашем рабочем столе или меню Start в Windows®, дважды кликните ярлык.
Чтобы запустить верификацию, необходимо создать новый проект Polyspace. Проект Polyspace указывает, на исходный код и включать папки в вашей файловой системе.
Слева от панели Start Page нажмите Start a new project. В качестве альтернативы выберите File> New Project.
После того, как вы обеспечиваете название проекта на следующих экранах:
Добавьте свою исходную папку.
В этом примере добавьте путь к папке, в которой вы сохранили файл example.c
. Нажмите Next.
Добавьте ваш включать папку.
В этом примере добавьте путь к папке, в которой вы сохранили файл include.h
. Эта папка может совпасть с предыдущей папкой. Нажмите Finish.
После того, как вы закончите добавлять свой источник и включать папки, вы видите новый проект на панели Project Browser. Ваши исходные папки копируются в первый модуль в проекте. Можно щелкнуть правой кнопкой по проекту добавить больше папок позже. Если вы добавляете папки позже, необходимо явным образом скопировать их в модуль.
Можно изменить опции по умолчанию, сопоставленные с анализом Polyspace.
Кликните по узлу Configuration в своем модуле проекта. На панели Configuration измените опции по мере необходимости. Например, на узле Coding Rules & Code Metrics, выберите Check MISRA C:2004.
Для получения дополнительной информации смотрите подсказку на каждой опции. Щелкните по ссылке More help для контекстно-зависимой справки на опциях.
Чтобы запустить верификацию, нажмите Run Code Prover на главной панели инструментов. Если кнопка указывает на Bug Finder, кликните по стреле около кнопки, чтобы переключиться на Code Prover.
Следуйте за прогрессом верификации на окне Output Summary. После верификации результаты открываются автоматически.
См.:
Можно запустить Code Prover от Windows или Linux® командная строка с пакетом (.bat
) файлы или интерпретатор (.sh
Скрипты.
Используйте polyspace-code-prover
команда, чтобы запустить верификацию.
Чтобы сохранить ввод полного пути в команду, добавьте путь
к polyspaceroot
\polyspace\binPath
переменная окружения на вашей операционной системе. Здесь,
папка установки Polyspace, например, polyspaceroot
C:\Program Files\Polyspace\R2021b
.
Перейдите к папке, где вы сохранили файлы (использующий cd
). Введите следующее:
polyspace-code-prover -sources example.c -I . -results-dir . -main-generator
.
указывает на текущую папку. Используемые опции:
-sources
: Задайте разделенные от запятой исходные файлы.
-I
: Задайте путь, чтобы включать папку. Используйте -I
отметьте каждый раз, когда вы хотите добавить, что отдельное включает папку.
-results-dir
: Задайте путь к папке, где результаты Polyspace Code Prover будут сохранены.
Обратите внимание на то, что папка результатов очищена и повторно заполнена при каждом запуске. Чтобы избежать случайного удаления файлов во время очистки, вместо того, чтобы использовать существующую папку, которая содержит другие файлы, задают специализированную папку для результатов Polyspace.
Verify module or library (-main-generator)
: Укажите что main
функция должна быть сгенерирована если не найденный в исходных файлах
После верификации результаты сохранены в файле ps_results.pscp
. Можно открыть этот файл от пользовательского интерфейса Polyspace. Например, введите следующее:
polyspace ps_results.pscp
Вместо того, чтобы задать разделенные от запятой источники непосредственно на командной строке, можно перечислить источники в текстовом файле (один файл на строку). Используйте опцию -sources-list-file
задавать этот текстовый файл.
См.:
Если вы разрабатываете код в Eclipse или основанном на Eclipse IDE, можно запустить Code Prover непосредственно от IDE.
После установки плагина Eclipse можно запустить Polyspace непосредственно на файлах в проектах Eclipse.
В панели Project Explorer в Eclipse выберите свой проект. Чтобы использовать Code Prover для анализа, выберите Polyspace> Code Prover. Чтобы запустить анализ, выберите Polyspace> Run (Ctrl + R
).
После анализа результаты открываются автоматически в Eclipse.
Прежде чем вы запустите Polyspace из MATLAB®, необходимо соединить Polyspace и установки MATLAB. Смотрите Интегрируют Polyspace с MATLAB и Simulink.
Чтобы запустить анализ, используйте polyspace.Project
объект. Объект имеет два свойства:
Configuration
: Задайте опции анализа, такие как источники, включает, компилятор и папка результатов с помощью этого свойства.
Results
: После анализа считайте результаты анализа в таблицу MATLAB с помощью этого свойства.
Чтобы запустить анализ, используйте run
метод этого объекта.
Запускать Polyspace на файле в качестве примера example.c
в
, введите следующее в командной строке MATLAB.polyspaceroot
\polyspace\examples\cxx\Code_Prover_Examples\sources
proj = polyspace.Project % Configure analysis proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',... 'cxx', 'Code_Prover_Example', 'sources', 'example.c')}; proj.Configuration.EnvironmentSettings.IncludeFolders = {fullfile(polyspaceroot,... 'polyspace', 'examples', 'cxx', 'Code_Prover_Example', 'sources')} proj.Configuration.TargetCompiler.Compiler = 'gnu4.9'; proj.Configuration.ResultsDir = fullfile(pwd,'results'); proj.Configuration.CodeProverVerification.MainGenerator = true; % Run analysis cpStatus = proj.run('codeProver'); % Read results resObj = proj.Results; cpSummary = getSummary(resObj, 'runtime'); cpResults = getResults(resObj, 'readable');
После верификации результаты сохранены в файле ps_results.pscp
. Можно открыть этот файл от пользовательского интерфейса Polyspace. Например, введите следующее:
resultsFile = fullfile(proj.Configuration.ResultsDir,'ps_results.pscp');
polyspaceCodeProver(resultsFile)
См.: