exponenta event banner

polyspaceBugFinder

Выполнить анализ Polyspace Bug Finder из MATLAB

Для упрощения создания сценариев запустите анализ Polyspace ® с помощью polyspace.Project объект.

Описание

status = polyspaceBugFinderоткрывает Finder™ ошибки Polyspace.

пример

status = polyspaceBugFinder(projectFile) открывает файл проекта Polyspace в Polyspace Bug Finder.

пример

status = polyspaceBugFinder(optsObject) выполняет анализ объекта опций Polyspace в MATLAB ®.

status = polyspaceBugFinder(projectFile, '-nodesktop') выполняет анализ файла проекта Polyspace в MATLAB.

status = polyspaceBugFinder(resultsFile) открывает файл результатов Polyspace в Polyspace Bug Finder.

пример

status = polyspaceBugFinder('-results-dir',resultsFolder) открывает файл результатов Polyspace из resultsFolder в Polyspace Bug Finder.

status = polyspaceBugFinder('-help') отображает параметры, которые могут быть предоставлены polyspaceBugFinder для выполнения анализа Polyspace Bug Finder.

пример

status = polyspaceBugFinder('-sources',sourceFiles) выполняет анализ Polyspace Bug Finder для исходных файлов, указанных в sourceFiles.

пример

status = polyspaceBugFinder('-sources',sourceFiles,Name,Value) выполняет анализ Polyspace Bug Finder для исходных файлов с дополнительными параметрами, заданными одним или несколькими Name,Value аргументы пары.

Примечание

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

Примеры

свернуть все

В этом примере показано, как открыть файл проекта Polyspace с расширением .psprj от MATLAB. В этом примере открывается файл проекта Bug_Finder_Example.psprj из папки polyspaceroot\polyspace\examples\cxx\Bug_Finder_Example.

Открыть проект Bug_Finder_Example.psprj в интерфейсе Polyspace.

prjFile = fullfile(polyspaceroot, 'polyspace', 'examples', 'cxx', ...
         'Bug_Finder_Example', 'Bug_Finder_Example.psprj');
polyspaceBugFinder(prjFile);

В этом примере показано, как открыть файл результатов Polyspace из MATLAB. В этом примере файл результатов открывается из папки polyspaceroot\polyspace\examples\cxx\Bug_Finder_Example\Module_1\BF_Result.

Открыть результаты resFolder.

resFolder = fullfile(polyspaceroot, 'polyspace', 'examples',  ...
         'cxx', 'Bug_Finder_Example', 'Module_1', 'BF_Result');
polyspaceBugFinder('-results-dir',resFolder)

В этом примере показано, как выполнить анализ Polyspace из командной строки MATLAB с использованием объектов.

Создайте объект options, добавьте исходный файл и включите папку в свойства.

opts = polyspace.BugFinderOptions;
opts.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Bug_Finder_Example', 'sources', 'numerical.c')};
opts.EnvironmentSettings.IncludeFolders = {fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Bug_Finder_Example', 'sources')};
opts.ResultsDir = fullfile(pwd,'results');

Выполните анализ и просмотрите результаты.

polyspaceBugFinder(opts);
polyspaceBugFinder('-results-dir',opts.ResultsDir)

В этом примере показано, как выполнить анализ Polyspace в MATLAB с использованием параметров в стиле DOS/UNIX.

Выполните анализ и откройте результаты.

sourceFiles = fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Bug_Finder_Example', 'sources', 'numerical.c');
includeFolders = fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Bug_Finder_Example', 'sources');
resultsDir = fullfile(pwd,'results');
polyspaceBugFinder('-sources',sourceFiles, ...
             '-I',includeFolders, ...
             '-results-dir',resultsDir);

Для просмотра результатов введите:

polyspaceBugFinder('-results-dir',resultsDir);

В этом примере показаны два различных способа настройки анализа в MATLAB. Можно настроить любое количество дополнительных опций, изменив свойства объекта опций или используя пары Наименование (Name) - Значение (Value). Здесь указывается проверка правил кодирования MISRA C ® 2012.

Создайте переменные для сохранения пути к исходному файлу и пути к папке результатов. Эти переменные можно использовать для любого метода анализа.

sourceFileName = fullfile(polyspaceroot, 'polyspace','examples', 'cxx', 'Bug_Finder_Example','sources','dataflow.c');
resFolder1 = fullfile('Polyspace_Results_1');
resFolder2 = fullfile('Polyspace_Results_2');

Анализ правил кодирования с помощью объекта options.

opts = polyspace.BugFinderOptions();
opts.Sources = {sourceFileName};
opts.ResultsDir = resFolder1;
opts.CodingRulesCodeMetrics.MisraC3Subset = 'all';
opts.CodingRulesCodeMetrics.EnableMisraC3 = true;
polyspaceBugFinder(opts);
polyspaceBugFinder('-results-dir',resFolder1);

Анализ правил кодирования с помощью параметров DOS/UNIX.

polyspaceBugFinder('-sources',sourceFileName,'-results-dir',resFolder2,'-misra3','all');
polyspaceBugFinder('-results-dir',resFolder2);

Входные аргументы

свернуть все

Имя объекта параметров Polyspace, указанное как дескриптор объекта.

Чтобы создать объект опций, используйте один из классов опций Polyspace.

Пример: opts

Имя файла проекта с расширением .psprj, задается как символьный вектор.

Если файл не находится в текущей папке, projectFile должен включать полный или относительный путь.

Пример: 'C:\Polyspace_Projects\myProject.psprj'

Типы данных: char

Имя файла результатов с расширением .psbf, задается как символьный вектор.

Если файл не находится в текущей папке, resultsFile должен включать полный или относительный путь.

Пример: 'myResults.psbf'

Типы данных: char

Имя папки результатов, указанное как символьный вектор. Папка должна содержать файл результатов с расширением .psbf. Если файл результатов находится во вложенной папке указанной папки, эта команда не открывает файл результатов.

Если папка отсутствует в текущей папке, resultsFolder должен включать полный или относительный путь.

Пример: 'C:\Polyspace\Results\'

Типы данных: char

Имена исходных файлов C или C++, разделенные запятыми, указываются в виде одиночного символьного вектора.

Если файлы находятся не в текущей папке, sourceFiles должен включать полный или относительный путь.

Пример: 'myFile.c', 'C:\mySources\myFile1.c,C:\mySources\myFile2.c'

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: '-target','i386','-compiler','gnu4.6' указывает, что исходный код предназначен для цели i386 и содержит синтаксис не-ANSI C для GCC 4.6.

Имена и значения параметров см. в разделе «Информация о командной строке» раздела «Параметры анализа» в средстве поиска ошибок Polyspace.

Выходные аргументы

свернуть все

Если анализ Polyspace Bug Finder завершается без ошибок, status является false. В противном случае это true.

Анализ может завершиться неудачей по нескольким причинам, включая:

  • Вы предоставили исходный файл, файл проекта или файл результатов, который не существует.

  • Указан недопустимый путь.

  • Один из файлов не скомпилирован.

Представлен в R2013b