Polyspace® Bug Finder™ определяет ошибки времени выполнения, проблемы параллелизма, уязвимости безопасности и другие дефекты во встроенном ПО на C и C++. Используя статический анализ, включая семантический анализ, Bug Finder анализирует поток управления, поток данных и межпроцедурное поведение. Подсветив дефекты, как только они будут обнаружены, Bug Finder позволяет вам сортировать и исправлять ошибки в начале процесса разработки.
Можно запустить Bug Finder на полных проектах C/C + + из пользовательского интерфейса Polyspace, в поддерживаемой среде разработки (IDE), такой как Eclipse™ или использование скриптов. См.:
Запуск Polyspace в пользовательском интерфейсе
Если вы впервые используете Polyspace, вы можете начать с пользовательского интерфейса Polyspace. Вы можете получить помощь от таких функций, как мастер настройки проекта, вспомогательное строение и журнал сводного анализа.
Запуск Polyspace в командной строке Windows или Linux
После настройки проекта в пользовательском интерфейсе Polyspace и завершения нескольких пробных запусков можно экспортировать строение в скрипты, которые запускаются автоматически или по требованию. Можно также запустить анализ Polyspace непосредственно из командной строки в операционной системе. Затем можно сохранить команды в пакетных файлах (Windows) или оболочечных скриптах (Linux) для последующих запусков. Если при запуске Серверные продукты Polyspace с помощью инструментов непрерывного интегрирования, таких как Jenkins, можно переиспользовать скрипты из десктопных решений Polyspace.
Как только вы знакомы с запуском Polyspace из командной строки, можно создать в своей среде IDE элементы меню, которые запускают ваши скрипты и запускают анализ Polyspace в одно нажатие кнопки. В Eclipse и основанных на Eclipse IDE, можно установить плагин Polyspace, который не требует никакой дополнительной настройки вообще. Когда вы запускаете Polyspace из плагина Eclipse, строение анализа создаётся непосредственно из вашего проекта Eclipse.
Вместо анализа полных проектов в вашей IDE можно проанализировать как раз текущий файл, над которым вы работаете, используя Polyspace в качестве You Code. Можно установить Polyspace в качестве расширения/плагина You Code в обычно используемых IDE, таких как Visual Studio, Visual Studio Code или Eclipse. Смотрите Запуск Polyspace в качестве кода в IDE и Результаты обзора (Polyspace Bug Finder Access).
Если у вас есть установка MATLAB, особенно легко написать скрипты, чтобы запустить анализ Polyspace. Вы получаете все преимущества скриптирования в среде MATLAB, например, автоматическую справку по синтаксисам функций. После анализа можно создать собственную визуализацию результатов с помощью графики MATLAB и инструментов визуализации.
Чтобы следовать шагам в этом руководстве, скопируйте файлы из |
Дважды кликните polyspace
исполняемый файл в
. Здесь, polyspaceroot
\ polyspace\bin
является папкой установки Polyspace, например polyspaceroot
C:\Program Files\Polyspace\R2021a
. См. также Папка установки.
Если вы настраиваете ярлык Polyspace на рабочем столе или в Start меню Windows®дважды кликните ярлык.
Чтобы запустить анализ, необходимо создать новый проект Polyspace. Проект Polyspace указывает, на исходный код и включать папки в вашей файловой системе.
В левой части панели Start Page нажмите Start a new project. Также выберите File > New Project.
После того, как вы задаете имя проекта, на следующих экранах добавьте источник и включите папки (обе папки могут быть одинаковыми). В этом руководстве добавьте путь к папке, в которой вы сохраняли исходные файлы и файлы включения.
После завершения добавления исходного кода и включения папок на панели Project Browser отображается новый проект. Исходные папки копируются в первый модуль проекта. Можно щелкнуть правой кнопкой мыши проект, чтобы добавить больше папок позже. Если вы добавляете папки позже, необходимо явным образом скопировать их в модуль.
Можно изменить опции по умолчанию, связанные с анализом Polyspace.
Щелкните узел Configuration в модуле проекта. На панели Configuration измените опции по мере необходимости. Для образца на узле Coding Rules & Code Metrics выберите Check MISRA C:2004.
Для получения дополнительной информации см. всплывающую подсказку по каждой опции. Щелкните ссылку More help для контекстно-зависимой справки по опциям.
Чтобы начать анализ, щелкните Run Bug Finder на верхней панели инструментов. Если кнопка указывает Code Prover, щелкните стреле рядом с кнопкой, чтобы переключиться на Bug Finder.
Следите за прогрессом анализа в окне Output Summary. После анализа результаты открываются автоматически.
См.:
Вы можете запустить Bug Finder из Windows или Linux® командная строка с пакетом (.bat
) файлы или интерпретатор (.sh
) скрипты.
Чтобы запустить анализ Bug Finder, используйте polyspace-bug-finder
команда.
Чтобы сохранить полный путь к команде, добавьте путь
на polyspaceroot
\ polyspace\binPath
окружение в операционной системе. Здесь,
является папкой установки Polyspace, например polyspaceroot
C:\Program Files\Polyspace\R2021a
.
Перейдите в папку, в которой вы сохраняли файлы (используя cd
). Введите следующее:
polyspace-bug-finder -sources numerical.c,dataflow.c -I . -results-dir .
.
указывает текущую папку. Используются следующие опции:
-sources
: Укажите разделенные запятыми исходные файлы.
-I
: Укажите путь для включения папки. Используйте -I
флаг при каждом добавлении отдельной папки включения.
-results-dir
: Укажите путь к папке, в которой будут сохранены результаты Polyspace Bug Finder.
Обратите внимание, что папка результатов очищается и повторно заполняется при каждом запуске. Чтобы избежать случайного удаления файлов во время очистки, вместо использования существующей папки, содержащей другие файлы, укажите выделенную папку для результатов Polyspace.
После анализа результаты сохраняются в файле ps_results.psbf
. Открыть этот файл можно из пользовательского интерфейса Polyspace. Для образца введите следующее:
polyspace ps_results.psbf
Вместо указания разделенных запятыми источников непосредственно в командной строке можно перечислить источники в текстовом файле (по одному файлу на линию). Используйте опцию -sources-list-file
чтобы задать этот текстовый файл.
См.:
Если вы разрабатываете код в Eclipse или основанной на Eclipse среде IDE, можно запустить Code Prover непосредственно из среды IDE.
После установки плагина Eclipse можно запустить Polyspace непосредственно на файлах в проектах Eclipse.
На панели Project Explorer в Eclipse выберите свой проект. Чтобы использовать Bug Finder для анализа, выберите Polyspace > Bug Finder. Чтобы начать анализ, выберите Polyspace > Run (Ctrl + R
).
После анализа результаты автоматически открываются в Eclipse.
Смотрите Запуск анализа Polyspace на проектах Eclipse.
Прежде чем запускать Polyspace из MATLAB®необходимо связать установки Polyspace и MATLAB. См. «Интеграция Polyspace с MATLAB и Simulink».
Чтобы запустить анализ, используйте polyspace.Project
объект. Объект имеет два свойства:
Configuration
: Задайте опции анализа, такие как источники, включения, компилятор и папка результатов, используя это свойство.
Results
: После анализа прочтите результаты анализа в таблицу MATLAB с помощью этого свойства.
Чтобы запустить анализ, используйте run
метод данного объекта.
Чтобы запустить Polyspace для файла с примером numerical.c
в
Введите в командной строке MATLAB следующее.polyspaceroot
\ polyspace\examples\cxx\Bug _ Finder _ Examples\sources
proj = polyspace.Project % Configure analysis proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', ... 'examples', 'cxx', 'Bug_Finder_Example', 'sources', 'numerical.c')}; proj.Configuration.TargetCompiler.Compiler = 'gnu4.9'; proj.Configuration.EnvironmentSettings.IncludeFolders = {fullfile(polyspaceroot, ... 'polyspace', 'examples', 'cxx', 'Bug_Finder_Example', 'sources')} proj.Configuration.ResultsDir = fullfile(pwd,'results'); % Run analysis bfStatus = proj.run('bugFinder'); % Read results resObj = proj.Results; bfSummary = getSummary(resObj, 'defects'); bfResults = getResults(resObj, 'readable');
После анализа результаты сохраняются в файле ps_results.psbf
. Открыть этот файл можно из пользовательского интерфейса Polyspace. Для образца введите следующее:
resultsFile = fullfile(proj.Configuration.ResultsDir,'ps_results.psbf');
polyspaceBugFinder(resultsFile)
См.: