Программа 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 Server с помощью средств непрерывной интеграции, таких как Jenkins, можно повторно использовать сценарии из настольных продуктов Polyspace.
После ознакомления с запуском Polyspace из командной строки можно создать пункты меню в среде IDE, которые запускают сценарии и запускают анализ Polyspace одним щелчком мыши. В IDE на основе Eclipse и Eclipse можно установить подключаемый модуль Polyspace, который вообще не требует дополнительной установки. При запуске Polyspace из плагина Eclipse конфигурация анализа создается непосредственно из проекта Eclipse.
Вместо анализа полных проектов в среде IDE можно проанализировать только текущий файл, с которым вы работаете, используя Polyspace в качестве кода. В часто используемых IDE, таких как Visual Studio, Visual Studio Code или Eclipse, можно установить расширение/подключаемый модуль Polyspace в виде кода. См. раздел Запуск Polyspace как код в IDE и результаты проверки (Polyspace Bug Finder Access).
При установке MATLAB очень легко писать сценарии для выполнения анализа Polyspace. Вы получаете все преимущества создания сценариев в среде MATLAB, например, автоматическую справку по синтаксисам функций. После анализа можно создать собственную визуализацию результатов с помощью графики MATLAB и инструментов визуализации.
![]()
Чтобы выполнить действия, описанные в этом учебном пособии, скопируйте файлы из |
Дважды щелкните значок polyspace исполняемый файл в . Здесь, polyspaceroot\polyspace\bin является папкой установки Polyspace, например, polyspacerootC:\Program Files\Polyspace\R2021a. См. также Папку установки.
При настройке ярлыка Polyspace на рабочем столе или в меню «Пуск» Windows ® дважды щелкните ярлык.
![]()
Для выполнения анализа необходимо создать новый проект Polyspace. Проект Polyspace указывает на источник и включает папки в файловой системе.
В левой части панели «Начальная страница» нажмите кнопку «Начать новый проект». Либо выберите «Файл» > «Новый проект».
После указания имени проекта на следующих экранах добавьте источник и включите папки (обе папки могут быть одинаковыми). В этом учебном пособии добавьте путь к папке, в которой был сохранен исходный файл, и добавьте файлы.
![]()

![]()
После завершения добавления источника и добавления папок на панели «Диспетчер проектов» появится новый проект. Исходные папки копируются в первый модуль проекта. Чтобы добавить дополнительные папки позже, щелкните проект правой кнопкой мыши. При последующем добавлении папок их необходимо явно скопировать в модуль.
![]()
Можно изменить опции по умолчанию, связанные с анализом Polyspace.
Щелкните узел Конфигурация в модуле проекта. При необходимости измените параметры на панели Конфигурация (Configuration). Например, в узле Coding Rules & Code Metrics выберите Check MISRA C:2004.
![]()

![]()
Дополнительные сведения см. в подсказке по каждому параметру. Щелкните ссылку Дополнительная справка для контекстной справки по параметрам.
![]()

![]()
Чтобы начать анализ, щелкните Выполнить поиск ошибок (Run Bug Finder) на верхней панели инструментов. Если кнопка указывает на средство проверки кода, щелкните стрелку рядом с кнопкой, чтобы переключиться на средство поиска ошибок.
Следите за ходом анализа в окне Сводка вывода (Output Summary). После анализа результаты открываются автоматически.
![]()
См.:
![]()
Вы можете запустить Bug Finder из командной строки Windows или Linux ® с пакетом (.bat) файлов или оболочки (.sh) сценарии.
Для выполнения анализа Bug Finder используйте polyspace-bug-finder команда.
Чтобы сохранить ввод полного пути к команде, добавьте путь в polyspaceroot\polyspace\binPath переменная среды в операционной системе. Здесь, является папкой установки Polyspace, например, polyspacerootC:\Program Files\Polyspace\R2021a.
Перейдите в папку, в которой были сохранены файлы (с помощью cd). Введите следующее:
polyspace-bug-finder -sources numerical.c,dataflow.c -I . -results-dir .
. указывает текущую папку. Используются следующие опции:
-sources: Укажите исходные файлы, разделенные запятыми.
-I: Укажите путь для включения папки. Используйте -I каждый раз при добавлении отдельной папки включения.
-results-dir: Укажите путь к папке, в которой будут сохранены результаты поиска ошибок Polyspace.
Обратите внимание, что папка результатов очищается и повторно заполняется на каждом прогоне. Чтобы избежать случайного удаления файлов во время очистки, вместо использования существующей папки, содержащей другие файлы, укажите специальную папку для результатов Polyspace.
После анализа результаты сохраняются в файле. ps_results.psbf. Этот файл можно открыть в интерфейсе пользователя Polyspace. Например, введите следующее:
polyspace ps_results.psbf
Вместо указания разделенных запятыми источников непосредственно в командной строке можно перечислить источники в текстовом файле (по одному файлу на строку). Использовать опцию -sources-list-file для указания этого текстового файла.
![]()
См.:
![]()
При разработке кода в Eclipse или среде IDE на основе Eclipse можно запустить программу проверки кода непосредственно из среды IDE.
После установки плагина Eclipse можно запустить Polyspace непосредственно над файлами в проектах Eclipse.
На панели «Обозреватель проектов» в Eclipse выберите проект. Чтобы использовать поиск ошибок для анализа, выберите Polyspace > Поиск ошибок. Чтобы начать анализ, выберите Полиспейс (Polyspace) > Выполнить (Run) (Ctrl + R).
После анализа результаты автоматически открываются в Eclipse.
![]()
См. раздел Выполнение анализа пространства в проектах затмения.
![]()
Перед запуском Polyspace из MATLAB ® необходимо связать установки Polyspace и MATLAB. См. раздел Интеграция полиспейса с MATLAB и Simulink.
Для выполнения анализа используйте polyspace.Project объект. Объект имеет два свойства:
Configuration: Укажите параметры анализа, такие как источники, include, компилятор и папка результатов, используя это свойство.
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)![]()
См.: