メインコンテンツ

polyspaceBugFinderServer

MATLAB スクリプトを使用して Polyspace Bug Finder Server で解析を実行

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

説明

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

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

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

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

メモ

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

すべて折りたたむ

この例では、Polyspace 解析を MATLAB コマンド ラインから実行する方法を示します。この例では次のようになります。

  • ディレクトリ polyspaceroot/polyspace/examples/cxx/BugFinder_example/sources にあるソース ファイル numerical.c を使用する。

  • 同じディレクトリにあるヘッダーをインクルードする。

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

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 = 'C:\Polyspace_Results';

Polyspace はファイル C:\Polyspace_Sources\source.c に対して検証を実行し、結果を C:\Polyspace_Results に保存します。

Polyspace Bug Finder Server で解析を実行します。

polyspaceBugFinderServer(opts);

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

  • ディレクトリ polyspaceroot/polyspace/examples/cxx/BugFinder_example/sources にあるソース ファイル numerical.c を使用する。

  • 同じディレクトリにあるヘッダーをインクルードする。

ソース ファイルとインクルード ファイルの場所を定義します。

src = fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Bug_Finder_Example', 'sources', 'numerical.c');
inc = fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Bug_Finder_Example', 'sources');
res = fullfile(pwd,'results');

numerical.c を解析するには、次のコマンドを実行します。

polyspaceBugFinderServer('-sources',src, ...
    '-I',inc, ...
    '-results-dir',res)

この例では 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.EnableMisraC3 = true;
opts.CodingRulesCodeMetrics.MisraC3Subset = 'all';
polyspaceBugFinderServer(opts);

DOS/UNIX オプションを使用してコーディング ルールを解析します。

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

入力引数

すべて折りたたむ

Polyspace オプション オブジェクト名をオブジェクト ハンドルとして指定します。

オプション オブジェクトを作成するには、Polyspace オプションのクラス polyspace.Options または polyspace.Project を使用します。

例: opts

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 解析エンジンのすべてのオプションのリスト[コマンド ライン情報] の節を参照してください。

バージョン履歴

R2019a で導入