メインコンテンツ

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

デスクトップでの PolyspaceBug Finder の実行

Polyspace® Bug Finder™ は、C および C++ 組み込みソフトウェアにおけるランタイム エラー、同時実行の問題、セキュリティの脆弱性などの欠陥を特定します。Bug Finder では、セマンティクス解析などの静的解析を使用して、制御フロー、データ フロー、および手続き間の動作を解析します。Bug Finder は、欠陥を検出して直ちに強調表示することにより、開発プロセスの初期段階でバグを重大度により順位付けし、修正を行うことができます。

Bug Finder は、Polyspace ユーザー インターフェイス、またはスクリプトを使用して、完全な C/C++ プロジェクトに対して実行できます。詳細は、以下を参照してください。

  • ユーザー インターフェイスでの Polyspace の実行

    Polyspace の使用が初めての場合は、Polyspace ユーザー インターフェイスから開始することができます。プロジェクトの設定ウィザード、構成の支援、解析ログの要約などの機能からヘルプを取得できます。

  • Windows または Linux コマンド ラインでの Polyspace の実行

    Polyspace ユーザー インターフェイスでプロジェクトを設定し、数回の試行を完了した後は、自動またはオンデマンドで実行するスクリプトに構成をエクスポートできます。オペレーティング システムのコマンド ラインから Polyspace 解析を直接実行することもできます。コマンドは後で実行するために、バッチ ファイル (Windows®) またはシェル スクリプト (Linux®) に保存することができます。Jenkins® などの継続的インテグレーション ツールを使用して Polyspace サーバー製品を実行している場合、Polyspace デスクトップ製品のスクリプトを再利用することができます。

  • MATLAB での Polyspace の実行

    MATLAB® をインストールしている場合は、スクリプトを書いて Polyspace 解析を実行することが特に簡単になります。たとえば、関数構文の自動ヘルプなど、MATLAB 環境におけるスクリプト作成のすべての利点を活用できます。解析後、MATLAB グラフィックスおよび可視化ツールを使用して、結果についての独自の可視化を作成できます。

例のファイル

このチュートリアルの手順に従うには、polyspaceroot\polyspace\examples\cxx\Bug_Finder_Example\sources のファイルを別のフォルダーにコピーします。ここで、polyspaceroot は Polyspace インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025a です。

ユーザー インターフェイスでの Polyspace の実行

Polyspace ユーザー インターフェイスを開く

polyspaceroot\polyspace\binpolyspace 実行可能ファイルをダブルクリックします。ここで、polyspaceroot は Polyspace インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025a です。インストール フォルダーも参照してください。

デスクトップまたは Windows の [スタート] メニューに Polyspace へのショートカットを設定している場合は、そのショートカットをダブルクリックします。

ソース ファイルの追加

解析を実行するには、新しい Polyspace プロジェクトを作成する必要があります。Polyspace プロジェクトでは、ファイル システムのソース フォルダーとインクルード フォルダーを指し示します。

[スタート ページ] ペインの左側で、[新規プロジェクトの開始] をクリックします。あるいは、[ファイル][新規プロジェクト] を選択します。

プロジェクト名を指定したら、次の画面で、ソース フォルダーとインクルード フォルダーを追加します (両方を同じフォルダーにすることができます)。このチュートリアルでは、ソース ファイルとインクルード ファイルを保存したフォルダーへのパスを追加します。

ソース フォルダーとインクルード フォルダーを追加し終わったら、[プロジェクト ブラウザー] ペインに新しいプロジェクトが表示されます。ソース フォルダーはプロジェクトの最初のモジュールにコピーされます。プロジェクトを右クリックし、後からフォルダーをさらに追加することができます。後からフォルダーを追加する場合は、そのフォルダーをモジュールに明示的にコピーしなければなりません。

Polyspace の設定と実行

Polyspace 解析に関連付けられている既定のオプションを変更できます。

プロジェクト モジュールで [構成] ノードをクリックします。必要に応じて、[構成] ペインでオプションを変更します。たとえば、[コーディング ルールおよびコード メトリクス] ノードで [MISRA C:2004 のチェック] を選択します。

詳細は、各オプションのツールヒントを参照してください。オプションの状況依存のヘルプについては、[詳しいヘルプ] リンクをクリックします。

解析を開始するには、上部のツール バーで [Bug Finder の実行] をクリックします。ボタンに Code Prover が示されている場合は、ボタンの横の矢印をクリックして Bug Finder に切り替えます。

[出力の概要] ウィンドウで解析の進行状況を確認します。解析後、結果が自動的に開きます。

その他の情報

詳細は、以下を参照してください。

Windows または Linux コマンド ラインでの Polyspace の実行

Windows または Linux コマンド ラインから、バッチ (.bat) ファイルまたはシェル (.sh) スクリプトを使用して Bug Finder を実行できます。

Bug Finder 解析を実行するには、polyspace-bug-finder コマンドを使用します。

コマンドの絶対パスの入力を省略するために、パス polyspaceroot\polyspace\bin をオペレーティング システムの Path 環境変数に追加します。ここで、polyspaceroot は Polyspace インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025a です。

(cd を使用して) ファイルを保存したフォルダーに移動します。以下を入力します。

polyspace-bug-finder -sources numerical.c,dataflow.c -I . -results-dir .
ここで、. は現在のフォルダーを示します。使用されるオプションは以下のとおりです。

  • -sourcesコンマ区切りのソース ファイルを指定します。

  • -Iインクルード フォルダーのパスを指定します。別のインクルード フォルダーを追加するたびに -I フラグを使用します。

  • -results-dir: Polyspace Bug Finder の結果を保存するフォルダーへのパスを指定します。

    実行されるたびに結果フォルダーがクリーンアップされて再設定されることに注意してください。クリーンアップ中にファイルが誤って削除されないようにするには、他のファイルを含む既存のフォルダーを使用するのではなく、Polyspace の結果専用のフォルダーを指定します。

解析後、結果はファイル ps_results.psbf に保存されます。このファイルは Polyspace ユーザー インターフェイスから開くことができます。たとえば、以下を入力します。

polyspace ps_results.psbf

コマンド ラインでコンマ区切りのソースを直接指定する代わりに、テキスト ファイルにソースをリストできます (1 行につき 1 ファイル)。このテキスト ファイルを指定するには、オプション -sources-list-file を使用します。

その他の情報

詳細は、以下を参照してください。

MATLAB での Polyspace の実行

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

解析を実行するには、polyspace.Project オブジェクトを使用します。このオブジェクトには次の 2 つのプロパティがあります。

  • Configuration:このプロパティを使用して、ソース、インクルード、コンパイラ、結果フォルダーなどの解析オプションを指定します。

  • Results:このプロパティを使用して、解析後に解析結果を MATLAB table に読み取ります。

解析を実行するには、このオブジェクトの run メソッドを使用します。

polyspaceroot\polyspace\examples\cxx\Bug_Finder_Examples\sources に含まれる例ファイル numerical.c に対して Polyspace を実行するには、MATLAB コマンド プロンプトに以下を入力します。

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.EnvironmentSettings.IncludeFolders = {fullfile(polyspaceroot, ...
'polyspace', 'examples', 'cxx', 'Bug_Finder_Example', 'sources')}
proj.Configuration.ResultsDir = fullfile(pwd,'results');

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

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

解析後、結果はファイル ps_results.psbf に保存されます。このファイルは Polyspace ユーザー インターフェイスから開くことができます。たとえば、以下を入力します。

resultsFile = fullfile(proj.Configuration.ResultsDir,'ps_results.psbf');
polyspaceBugFinder(resultsFile)

その他の情報

詳細は、以下を参照してください。

参考

トピック