メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

polyspaceBugFinder

Polyspace Bug Finder 解析の MATLAB からの実行

スクリプト化を容易にするには、polyspace.Project オブジェクトを使用して Polyspace® 解析を実行します。

説明

status = polyspaceBugFinder は、Polyspace Bug Finder™ を開きます。

status = polyspaceBugFinder(projectFile) は、Polyspace プロジェクト ファイルを Polyspace Bug Finder で開きます。

status = polyspaceBugFinder(optsObject) は、MATLAB® の Polyspace オプション オブジェクトに対して解析を実行します。

メモ

Polyspace オプション オブジェクトを使用して解析を実行する場合、解析のオプションの指定には Polyspace オプション オブジェクトのみを使用します。1 番目の引数が Polyspace オプション オブジェクトの場合、名前と値の引数の使用はサポートされていません。

status = polyspaceBugFinder(projectFile, '-nodesktop') では、MATLAB の Polyspace プロジェクト ファイルで解析が実行されます。

status = polyspaceBugFinder(resultsFile) は、Polyspace の結果ファイルを Polyspace Bug Finder で開きます。

status = polyspaceBugFinder('-results-dir',resultsFolder) は、resultsFolder の Polyspace の結果ファイルを Polyspace Bug Finder で開きます。

status = polyspaceBugFinder('-help') は、Polyspace Bug Finder 解析を実行するために polyspaceBugFinder コマンドに提供できるオプションを表示します。

status = polyspaceBugFinder('-sources',sourceFiles) は、sourceFiles で指定されたソース ファイルに対して Polyspace Bug Finder 解析を 実行します。

status = polyspaceBugFinder('-sources',sourceFiles,Name,Value) は、1 つ以上の Name,Value ペアの引数で指定された追加オプションを使用して、ソース ファイルに対して Polyspace Bug Finder 解析を実行します。

メモ

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

[status, jobID] = polyspaceBugFinder(___,'-batch','-scheduler',scheduler) は、解析の負荷をリモート クラスターに移します。ここで、scheduler は、複数のクライアントからの解析の送信を管理する、クラスターのヘッド ノードを示します。クラスター内の 2 つのジョブを操作も参照してください。

すべて折りたたむ

この例では、拡張子 .psprj をもつ Polyspace プロジェクト ファイルを 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 コマンド ラインから実行する方法を示します。

オプション オブジェクトを作成し、ソース ファイルとインクルード フォルダーをプロパティに追加します。

opts = polyspace.Options;
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)

この例では、DOS/UNIX 形式のオプションを使用して MATLAB で Polyspace 解析を実行する方法を示します。

解析を実行し、結果を開きます。

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 での解析をカスタマイズする 2 つの異なる方法を示します。オプション オブジェクトのプロパティを変更するか、名前と値のペアを使用することで、追加オプションをいくつでもカスタマイズできます。ここでは、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');

オプション オブジェクトを使用してコーディング ルールを解析します。

opts = polyspace.Options();
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'

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: '-target','i386','-compiler','gnu4.6' は、ソース コードが i386 をターゲットとし、GCC 4.6 の非 ANSI C 構文を含んでいることを指定します。

オプション名と値については、Polyspace Bug Finder 解析エンジンのすべてのオプションのリスト[コマンド ライン情報] の節を参照してください。

出力引数

すべて折りたたむ

Polyspace Bug Finder 解析がエラーなしで完了した場合、statusfalse になります。それ以外の場合は、true です。

解析の失敗には次を含む複数の理由が考えられます。

  • 存在しないソース ファイル、プロジェクト ファイル、または結果ファイルを指定した。

  • 無効なパスを指定した。

  • ファイルのいずれかがコンパイルされなかった。

Polyspace の解析の負荷をリモート クラスターに移す場合、このコマンドは、リモート クラスターに対して送信された解析に関連付けられたジョブの ID を返します。この ID を使用して、ジョブを管理したり、ジョブが完了した後に解析結果をダウンロードしたりできます。polyspaceJobsManager も参照してください。

バージョン履歴

R2013b で導入