ビルド コマンド (Makefile) からの Polyspace 解析構成の作成
たとえば、継続的インテグレーション中にサーバーでスクリプトを使用して定期的に Polyspace® を実行する場合には、解析がエラーなしで完了するように、すべての解析オプションを事前に設定しておく必要があります。新しいコード送信に対応するため、これらのオプションを必要に応じて更新する必要があります。ビルド コマンド (makefile) などの既存のアーティファクトを使用して新しいコード送信をビルドする場合は、ビルド コマンドを再利用して Polyspace 解析を構成し、新しい送信に対応することができます。polyspace-configure コマンドでは、ビルド コマンドの実行を監視し、Polyspace による解析のためのオプション ファイルを作成できます。
このトピックでは、ビルド コマンドからオプション ファイルを作成し、このファイルを後続の解析に使用する方法を説明する、簡単なチュートリアルを示します。このトピックでは Linux® makefile と GCC コンパイラを使用しますが、Windows® などの他のオペレーティング システムや、Microsoft® Visual Studio® などの他のコンパイラに合わせてコマンドを変更できます。
デモ ソース ファイルを
から書き込み権限のあるフォルダーにコピーします。ここで、polyspaceserverroot\polyspace\examples\cxx\Bug_Finder_Example\sourcesは Polyspace Server 製品のルート インストール フォルダーです。たとえば、polyspaceserverrootC:\Program Files\Polyspace Server\R2019aです。デモ ソース ファイルをコンパイルするシンプルな makefile を作成します。ソース ファイルと同じフォルダーにこの makefile を保存します。
たとえば、
makefileという名前のファイルを作成して、次の内容を追加します。ソース ファイルが makefile によって正常にビルドされたことを確認します。コマンド ターミナルを開き、(CC := gcc SOURCES := $(wildcard *.c) all: $(CC) -c $(SOURCES)
cdを使用して) そのフォルダーに移動し、以下を入力します。make -B
makeコマンドはエラーなしで完了するはずです。-Bオプションを使用すると、makefile 内のすべてのターゲットが確実にビルドされます。通常、makeなどのビルド コマンドは、前回のビルド以降に変更されたソースだけをビルドするようにセットアップされています。しかし、polyspace-configureでは、Polyspace プロジェクトまたはオプション ファイルに追加するソースを決定するために、フル ビルドが必要です。polyspace-configureでビルド コマンドをトレースして、オプション ファイルcompile_optsを作成します。polyspace-configure -output-options-file compile_opts make -B
追加のオプションを含む 2 番目のオプション ファイルを作成します。たとえば、ファイル
run_optsを作成して次の内容を追加します。-checkers numerical -report-template BugFinder -output-format pdf
これらのオプションは、Bug Finder ですべての数値チェッカーを実行し、解析後に
BugFinderテンプレートを使用して PDF レポートを作成します。2 つのオプション ファイル (ビルド コマンドから作成される
compile_optsと、手動で作成したrun_opts) を使用して Bug Finder 解析を実行します。Polyspace Bug Finder™:
polyspace-bug-finder -options-file compile_opts -options-file run_opts
Polyspace Bug Finder Server™:
polyspace-bug-finder-server -options-file compile_opts -options-file run_opts
解析はエラーなしで完了するはずです。結果を Polyspace ユーザー インターフェイスで開くか、または
polyspace-access -upload(Polyspace Access) コマンドを使用して Polyspace Access Web インターフェイスに結果をアップロードできます。Bug Finder ではなく Code Prover を実行するには、
polyspace-bug-finder-serverコマンドではなくpolyspace-code-prover-serverコマンドを使用します。
MATLAB スクリプトを使用して同様の解析を実行できます。polyspace-bug-finder を関数 polyspaceBugFinder に置き換え、polyspace-configure を関数 polyspaceConfigure に置き換えます。
参考
polyspace-configure | polyspace-bug-finder-server