Выполните анализ Polyspace для кода C и C++ и прочтите результаты
Выполните анализ Polyspace ® для исходных файлов C и C++ с помощью этого объекта MATLAB ®. Чтобы указать исходные файлы и настроить параметры анализа, используйте Configuration собственность. Для выполнения анализа используйте run способ. Чтобы прочитать результаты после анализа, используйте Results собственность.
Примечание
Перед запуском Polyspace из MATLAB необходимо связать установки Polyspace и MATLAB. См. раздел Интеграция полиспейса с MATLAB и Simulink.
proj = polyspace.Project создает объект, который можно использовать для настройки и выполнения анализа Polyspace, а затем считывает результаты анализа.
Configuration - Варианты анализаpolyspace.Options объектОпции для выполнения анализа Polyspace, реализованного как polyspace.Options объект. Объект имеет свойства, соответствующие параметрам анализа. Дополнительные сведения об этих свойствах см. в разделе polyspace. Свойства Project.Configuration.
Можно сохранить параметры по умолчанию или изменить их одним из следующих способов:
Установите язык исходного кода в 'C', 'CPP', или'C-CPP'(по умолчанию). Некоторые параметры анализа могут быть недоступны в зависимости от языковых параметров объекта.
proj=polyspace.Project;
proj.Configuration=polyspace.Options('C');Измените свойства напрямую.
proj = polyspace.Project;
proj.Configuration.TargetCompiler.Compiler = 'gnu4.9';Получение опций из другого polyspace.Project объект.
proj1 = polyspace.Project;
proj1.Configuration.TargetCompiler.Compiler = 'gnu4.9';
proj2 = proj1;
Чтобы использовать общие параметры анализа для нескольких проектов, используйте этот подход. Например, требуется повторно использовать все параметры и изменять только исходные файлы.
Получение опций из проекта, созданного в интерфейсе пользователя настольных продуктов Polyspace (.psprj файл).
proj = polyspace.Project; projectLocation = fullfile(polyspaceroot, 'polyspace', ... 'examples', 'cxx', 'Bug_Finder_Example', 'Bug_Finder_Example.psprj') proj.Configuration = polyspace.loadProject(projectLocation);
Чтобы определить оптимальный набор опций, задайте параметры в интерфейсе пользователя, а затем импортируйте их в polyspace.Project объект. В интерфейсе пользователя можно получить справку из таких функций, как помощник по компиляции, и получить всплывающую подсказку о параметрах.
Получите опции от модели Simulink ® (применяется только к настольным продуктам Polyspace). Перед получением опций создайте код из модели.
modelName = 'rtwdemo_roll'; load_system(modelName); % Set parameters for Embedded Coder target set_param(modelName, 'SystemTargetFile', 'ert.tlc'); set_param(modelName,'Solver','FixedStepDiscrete'); set_param(modelName,'SupportContinuousTime','on'); set_param(modelName,'LaunchReport','off'); set_param(modelName,'InitFltsAndDblsToZero','on'); if exist(fullfile(pwd,'rtwdemo_roll_ert_rtw'), 'dir') == 0 slbuild(modelName); end % Obtain configuration from model proj = polyspace.Project; proj.Configuration = polyspace.ModelLinkOptions(modelName);
Используйте опции для анализа кода, созданного из модели.
Results - Результаты анализаpolyspace.BugFinderResults или polyspace.CodeProverResults объектРезультаты анализа Polyspace. При создании polyspace.Project , это свойство изначально пусто. Свойство заполняется только после выполнения run способ объекта. В зависимости от аргумента run способ, 'bugFinder' или 'codeProver', свойство реализуется как polyspace.BugFinderResults объект илиpolyspace.CodeProverResults объект.
Чтобы прочитать результаты, используйте эти методы polyspace.BugFinderResults или polyspace.CodeProverResults объект:
getSummaryПолучение сводного формата результатов в таблице MATLAB.
proj = polyspace.Project;
proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',...
'cxx', 'Code_Prover_Example', 'sources', 'single_file_analysis.c')};
proj.Configuration.ResultsDir = fullfile(pwd,'results');
run(proj, 'bugFinder');
resObj = proj.Results;
resTable = getSummary(resObj, 'defects');Дополнительные сведения см. в разделе getSummary.
getResultsПолучение полных результатов или более удобочитаемого формата в таблицу MATLAB.
proj = polyspace.Project;
proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',...
'cxx', 'Code_Prover_Example', 'sources', 'single_file_analysis.c')};
proj.Configuration.ResultsDir = fullfile(pwd,'results');
run(proj, 'bugFinder');
resObj = proj.Results;
resTable = getResults(resObj, 'readable');Дополнительные сведения см. в разделе getResults.
run | Выполнение анализа Polyspace |
Выполнить анализ 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');
Выполнение анализа 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 = getSummary(resObj, 'runtime');
Выполните анализ Polyspace Bug Finder для файла примера single_file_analysis.c. Настройте следующие параметры:
Укажите GCC 4.9 в качестве компилятора.
Сохранение результатов в results подпапка текущей рабочей папки.
Включите проверку правил MISRA C ®: 2012. Проверьте только обязательные правила.
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'); proj.Configuration.CodingRulesCodeMetrics.EnableMisraC3 = true; proj.Configuration.CodingRulesCodeMetrics.MisraC3Subset = 'mandatory'; % Run analysis bfStatus = run(proj, 'bugFinder'); % Read results resObj = proj.Results; defectsSummary = getSummary(resObj, 'defects'); misraSummary = getSummary(resObj, 'misraC2012');
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.