メインコンテンツ

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

Polyspace レポート生成時のメモリ不足エラーの修正

問題

非常に多数の欠陥やコーディング ルール違反が含まれている Polyspace® の結果からレポートを生成するときに、メモリ不足エラーが発生することがあります。

エラー メッセージは以下のようになります。

....
Exporting views... 
Initializing... 
Polyspace Report Generator 
Generating Report 
 ..... 
    Converting report 
Opening log file:  C:\Users\auser\AppData\Local\Temp\java.log.7512 
Document conversion failed 
.....
Java exception occurred: 
java.lang.OutOfMemoryError: Java heap space 

考えられる解決策

この問題を解決するには、使用可能なヒープ メモリの拡張、または 1 つのレポートではなく複数のレポートでの結果の報告を試します。

Java ヒープ サイズの拡張

レポート生成中にこのエラーが発生する場合は、Java® ヒープ サイズを増やしてみます。64 ビット アーキテクチャでの既定のヒープ サイズは 1024 MB (メガバイト) です。

サイズを拡張するには、以下を行います。

  1. polyspaceroot\polyspace\bin\architecture に移動します。ここで、

    • polyspaceroot はインストール フォルダーです。

    • architecture は、コンピューター アーキテクチャです。たとえば、win32win64 など。

  2. ファイル java.opts に指定された既定のヒープ サイズを変更します。たとえば、ヒープ サイズを 2 GB (ギガバイト) に拡張するには、1024m2048m で置き換えます。

  3. ファイルへの書き込み権限がない場合、ファイルを別の場所にコピーします。変更を行ったら、ファイルを再度 polyspaceroot\polyspace\bin\architecture\ にコピーします。

複数レポートでの Polyspace の結果の報告

結果セット (.pscp または .psbf ファイル) のすべての結果を 1 つのレポートで報告する代わりに、複数のレポートを生成し、各レポートに結果の小さなサブセットを含めることができます。

最もシンプルな方法は、特定のタイプの結果を 1 つのレポートで報告することです。たとえば、MISRA C™:2012 ルール違反を含む結果セットからは、必須ルールと必要ルールに関するレポートと、その他のルールに関するレポートという 2 つのレポートを生成できます。

レビュー スコープの適用とフィルター済みレポートの生成.  Polyspace デスクトップ製品のユーザー インターフェイスで、レビュー スコープと呼ばれる名前付きフィルター セットを作成できます。レポートの生成時にレビュー スコープを適用できます。レビュー スコープにより、レポートに保存する前に結果がフィルター処理されます。

レビュー スコープを作成するには、次のようにします。

  1. Polyspace ユーザー インターフェイスで、[ツール][基本設定]を選択します。

  2. [レビュー スコープ] タブで、[新規] を選択します。レビュー スコープ名と保存する場所を入力します。

    When saving a review scope, enter a name in the Scope Name field.

    レビュー スコープ名は、後で結果をフィルタリングするときに使用できます。

  3. レビュー スコープに含めるチェッカーを選択します。

Polyspace の結果からフィルター済みレポートを生成できます。このためには、レポートの生成前にレビュー スコープを適用します。レビュー スコープに含まれているチェッカーの結果だけがレポートに含まれます。レビュー スコープはユーザー インターフェイスで作成しますが、ユーザー インターフェイスまたはコマンド ラインで生成されるレポートにこのスコープを適用できることに注意してください。

Polyspace ユーザー インターフェイスでフィルター済みレポートを生成するには、次のようにします。

  1. [結果のリスト] ペインの上部にあるドロップダウンで、[すべての結果] の代わりに新しいレビュー スコープを選択します。結果のリストが絞り込まれ、レビュー スコープに含まれているチェッカーの結果のみが表示されます。

  2. [レポート] メニューを使用して、レポートを生成するかまたは結果をエクスポートします。

    • レポートを生成するには、[レポートの実行] を選択します。レポート生成を開始する前に、[レポートの実行] ダイアログで [現在表示されている結果のみを含める] を選択します。

    • 結果をエクスポートするには、[エクスポート][現在表示されている結果をエクスポート]を選択します。

コマンド ラインでフィルター済みレポートを生成するには、コマンド polyspace-report-generator にオプション -wysiwyg scopeName を使用します。ここで、scopeName は Polyspace ユーザー インターフェイスからレビュー スコープを保存するときに使用したレビュー スコープ名です。次に例を示します。

polyspace-report-generator -template templateName -results-dir resultsFolder -format HTML -wysiwyg scopeName
ここで:

  • templateNamepolyspaceroot\toolbox\polyspace\psrptgen\templates\Developer.rpt などのレポート テンプレートのパスです。ここで polyspaceroot は、C:\Program Files\Polyspace\R2025a などの Polyspace インストール フォルダーです。

  • resultsFolder は、Polyspace 結果が含まれているフォルダーです。

スコープ名は、ユーザー基本設定に保存されることに注意してください。したがって、別の Polyspace インストール (別のリリースなど) でレポートを生成するときには、このスコープ名を使用できません。ユーザー基本設定の詳細については、Polyspace ユーザー インターフェイスのカスタマイズの保存を参照してください。

結果のリストの列ベースのフィルターの適用とフィルター済みレポートの生成.  Polyspace ユーザー インターフェイスで、列ベースのフィルターを使用して結果をフィルター処理し、現在表示されている結果からフィルター済みレポートを作成することもできます。

  1. [結果のリスト] ペインの列ヘッダーの アイコンをクリックすると、利用可能なフィルターが表示されます。必要なフィルターを適用します。

  2. [レポート] メニューを使用して、レポートを生成するかまたは結果をエクスポートします。

    • レポートを生成するには、[レポートの実行] を選択します。レポート生成を開始する前に、[レポートの実行] ダイアログ ボックスで [現在表示されている結果のみを含める] を選択します。

    • 結果をエクスポートするには、[エクスポート][現在表示されている結果をエクスポート]を選択します。

生成されるレポートには、結果のフィルター処理に使用された列が示されます。たとえば、[ステータス] 列を使用して、ステータスが [正当化済み] のすべての結果を非表示にする場合、生成されるレポートには次の行が含まれます。

Columns with active filters:
   Status
ステータスが [正当化済み] の結果はいずれも、レポートに表示されません。

選択した列ベースのフィルターは、結果フォルダーの .settings サブフォルダーにあるファイル ui_settings.prf に保存されます。したがって、コマンド ラインでこれらの結果からレポートを生成し、オプション -wysiwyg "All results" (または前のセクションに示されているスコープ名) を使用する場合、生成されるレポートに、選択した列ベースのフィルターが適用されます。その他の結果のフォルダーの .settings サブフォルダーに、ファイル ui_settings.prf を移動して、その他の結果からフィルター済みレポートを生成することもできます。

参考

トピック