exponenta event banner

getSummary

Просмотр количества результатов Polyspace, упорядоченных по типу результатов (Bug Finder) или цвету и файлу (Code Prover)

Описание

пример

resSummary = getSummary(resObj, resultsType) возвращает распределение результатов типа resultsType в наборе результатов Polyspace ® ,resObj. Набор результатов resObj может быть набором результатов поиска ошибок, обозначенным polyspace.BugFinderResults объект или набор результатов Code Prover, обозначаемый polyspace.CodeProverResults объект.

Например:

  • Если выбрать просмотр дефектов Bug Finder, можно увидеть, сколько дефектов каждого типа присутствует в результирующем наборе, например, сколько неинициализированных переменных или несоответствий описаний.

  • Если выбрана проверка выполнения программы Code Prover, то в каждом файле отображается количество проверок красного, оранжевого, серого и зеленого цветов.

Примеры

свернуть все

В этом примере показано, как считывать результаты анализа Bug Finder из MATLAB ®.

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

resPath=fullfile(polyspaceroot,'polyspace','examples','cxx','Bug_Finder_Example', ...
'Module_1','BF_Result');
userResPath = tempname;
copyfile(resPath,userResPath);

Создайте объект результатов.

resObj = polyspace.BugFinderResults(userResPath);

Считывание результатов в таблицы MATLAB с помощью объекта.

resSummary = getSummary(resObj, 'defects');
resTable = getResults(resObj);

Выполнить анализ Finder™ ошибки Polyspace в демонстрационном файле numerical.c. Настройте следующие параметры:

  • Укажите GCC 4.9 в качестве компилятора.

  • Сохранение результатов в results подпапка текущей рабочей папки.

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.ResultsDir = fullfile(pwd,'results');

% Run analysis
bfStatus = run(proj, 'bugFinder');

% Read results
resObj = proj.Results;
bfSummary = getSummary(resObj, 'defects');

В этом примере показано, как считывать результаты анализа проверки кода из MATLAB.

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

resPath = fullfile(polyspaceroot,'polyspace','examples','cxx','Code_Prover_Example', ...
'Module_1','CP_Result');
userResPath = tempname;
copyfile(resPath,userResPath);

Создайте объект результатов.

resObj = polyspace.CodeProverResults(userResPath);

Считывание результатов в таблицы MATLAB с помощью объекта.

resSummary = getSummary(resObj, 'runtime');
resTable = getResults(resObj);

Выполнение анализа Prover™ кода Polyspace в демонстрационном файле single_file_analysis.c. Настройте следующие параметры:

  • Укажите GCC 4.9 в качестве компилятора.

  • Сохранение результатов в results подпапка текущей рабочей папки.

  • Укажите, что main должна быть создана, если она не существует в исходном коде.

proj = polyspace.Project

% Configure analysis
proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Code_Prover_Example', 'sources', 'single_file_analysis.c')};
proj.Configuration.TargetCompiler.Compiler = 'gnu4.9';
proj.Configuration.ResultsDir = fullfile(pwd,'results');
proj.Configuration.CodeProverVerification.MainGenerator = true;


% Run analysis
cpStatus = run(proj, 'codeProver');

% Read results
resObj = proj.Results;
cpSummary = getResults(resObj, 'readable');

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

свернуть все

Набор результатов поиска ошибок или проверки кода, указанный как polyspace.BugFinderResults или polyspace.CodeProverResults объект соответственно.

Тип результата, заданный как символьный вектор. Значение по умолчанию для набора результатов поиска ошибок: 'defects' и значением по умолчанию для набора результатов программы проверки кода является 'runtime'.

ВходЗначение
'defects'Дефекты устройства поиска ошибок.
'runtime'Программа проверки кода проверяет наличие ошибок во время выполнения.
'misraC'Правила MISRA C ®: 2004.
'misraCAGC'MISRA C:2004 правила для сгенерированного кода.
'misraCPP'Правила MISRA ® C++.
'misraC2012'Правила C:2012 MISRA.
'jsf'Правила JSF ® C++.
'certC'Правила CERT ® C.
'certCpp'Правила CERT C++.
'iso17961'Правила ISO ®/IEC TS 17961.
'autosarCPP14'Правила AUTOSAR C++ 14.
'metrics'Показатели сложности кода.
'customRules'Настраиваемые правила, обеспечивающие выполнение соглашений об именовании идентификаторов.

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

свернуть все

Распределение результатов, указанное как таблица. Например:

  • Если вы решили просмотреть сводку дефектов Bug Finder, то выписка таблицы выглядит следующим образом:

    КатегорияДефектВоздействиеОбщее количество
    ПараллелизмГонка данныхВысоко2
    ПараллелизмТупикВысоко 1
    Поток данныхНеинициализированная переменнаяВысоко 2

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

  • Если выбрана сводка проверок времени выполнения программы Code Prover, извлечение таблицы выглядит следующим образом:

    ФайлДоказанныйЗеленыйКрасныйСерыйОранжевый
    file1.c92.0%87328
    file2.c97.7%41011

    Приведенная выше таблица показывает, что file1.c имеет:

    • 3 проверки красного, 2 проверки серого и 8 проверок оранжевого цвета.

    • 92% доказанных операций.

      Другими словами, из каждых 100 операций, проверенных в ходе проверки, 92 операции были подтверждены зеленым, красным или серым цветом. См. раздел Результат проверки кода и Цвета исходного кода.

Дополнительные сведения о таблицах MATLAB см. в разделе Таблицы.

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