メインコンテンツ

polyspace.CodeProverResults

Polyspace Code Prover の結果を MATLAB から読み取る

説明

Polyspace®Code Prover™ の解析結果を、このオブジェクトを使用して MATLAB® table に読み取ります。結果の大まかな概要を入手することも、実行時チェックの各インスタンスなどの詳細を入手することもできます。

メモ

MATLAB から Polyspace を実行する前に、Polyspace インストールと MATLAB インストールをリンクしなければなりません。MATLAB や Simulink との Polyspace の統合を参照してください。

作成

説明

resObj = polyspace.CodeProverResults(resultsFolder) では、Code Prover の結果の特定のセットを MATLAB table に読み取るためのオブジェクトが作成されます。このオブジェクトのメソッドを使用して結果を読み取ります。

proj = polyspace.Project; resObj = proj.Results; は、Results プロパティを使用して polyspace.Project オブジェクトを作成します。Code Prover 解析を実行する場合、このプロパティは polyspace.CodeProverResults オブジェクトです。

入力引数

すべて展開する

結果フォルダー名を文字ベクトルとして指定します。フォルダーには、拡張子 .psbf の付いた結果ファイルを直接格納する必要があります。結果ファイルが指定されたフォルダーの "サブフォルダー" にある場合でも、結果ファイルにアクセスできません。

ファイルが現在のフォルダーに存在しない場合、resultsFolder は絶対パスまたは相対パスを含んでいなければなりません。

例: 'C:\Polyspace\Results\'

オブジェクト関数

getSummary結果タイプ (Bug Finder) または色とファイル (Code Prover) で整理された Polyspace の結果の数を表示する
getResultsBug Finder または Code Prover の結果のすべてのインスタンスを表示する
variableAccess読み取り/書き込み操作と C/C++ グローバル変数の表示

すべて折りたたむ

この例では、MATLAB から Code Prover の解析結果を読み取る方法を示します。

デモの結果セットを一時フォルダーにコピーします。

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

結果オブジェクトを作成します。

resObj = polyspace.CodeProverResults(userResPath);

このオブジェクトを使用して結果を MATLAB table に読み取ります。

resSummary = getSummary (resObj);
resTable = getResults (resObj);

デモ ファイル single_file_analysis.cPolyspace Code Prover 解析を実行します。以下のオプションを構成します。

  • コンパイラとして 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');

バージョン履歴

R2017a で導入