このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR コードの Polyspace 解析のトラブルシューティング
このトピックでは、Polyspace でのコンポーネント ベースの AUTOSAR コード検証方法について説明します。統合解析方法については、Polyspace で AUTOSAR コードのコンポーネント ベースの解析と統合解析のどちらかを選択するを参照してください。
AUTOSAR ソフトウェア コンポーネントのコード実装を解析するために、Polyspace® では AUTOSAR XML 仕様を解析して対応するコード実装を検出した後、そのコードをコンパイルして静的解析を実行し、ランタイム エラーまたはコードと仕様との不一致を検出します。これらの手順のいずれかでエラーが発生した場合、エラーを含むソフトウェア コンポーネントの解析結果は表示されません。このトピックでは、これらのエラーを診断および修正する方法を説明します。
正常な解析結果を得るには、Code Prover では、AUTOSAR XML は適格でなければならず、コードにコンパイル エラーが存在してはなりません。たとえば、AUTOSAR XML の 2 つの要素が同じ汎用一意識別子 (UUID) をもってはなりません。場合によっては、他のツールを使用して、ARXML が適格であり、コードにコンパイル エラーがないことを確認します。それらのツールに加えて、Code Prover 解析の AUTOSAR XML 解析段階およびコード抽出段階でエラーを使用して、XML とコードの問題を特定することもできます。
解析後、ファイル psar_project.xhtml
を Web ブラウザーで開きます。ファイルはプロジェクト フォルダーにあります。プロジェクト ステータス全体をチェックして、問題のある特定のソフトウェア コンポーネントまで掘り下げます。Polyspace ユーザー インターフェイスでプロジェクトを作成する場合、プロジェクト作成後にこの HTML ファイルが [プロジェクト ステータス] タブに表示されます。
プロジェクトの完了ステータスの確認
解析が正しく完了したら、以下のようなステータス メッセージが表示されます。
Project Status Project is marked created on Sat Dec 23 2017 19:37:53 GMT-0500 (Eastern Standard Time) after completing the following sequence of states in 38.25s:
In current state, 2 AUTOSAR behaviors are processed, 2 with extracted implementation code and 2 with generated code-prover result. |
このメッセージには、ARXML 仕様内に検出されたソフトウェア コンポーネント数、コード実装で見つかったソフトウェア コンポーネント数、Code Prover により正常に解析されたソフトウェア コンポーネント数が示されます。
Polyspace ユーザー インターフェイスでプロジェクトを作成する場合、解析は後で実行されます。プロジェクト ステータスには最初の 4 つの手順のみが表示されます。
AUTOSAR XML 解析時のエラーの確認
AUTOSAR XML の解析時にエラーが発生する (かつそのエラーによって解析全体が停止する) 場合、プロジェクト ステータスは以下のようになります。
Project Status Project is marked created on Wed Dec 31 1969 19:25:14 GMT-0500 (Eastern Standard Time) after completing the following sequence of states in 0.58s:
Execution terminates with |
上記のメッセージには、AUTOSAR XML の解析時に発生したエラーが示されています。
さらに診断するには、左上隅の アイコンをクリックします。左側のペインで、[Behaviors] をクリックします。通常、内部動作が抽出されたすべてのソフトウェア コンポーネントのリストが表示されます。動作ごとに、次の操作が可能です。
ARXML 解析およびコード抽出フェーズでエラーが発生したかどうかを確認します。
エラーと警告の詳細を確認します。
エラーと警告のリンクについては
See key autosar definition for this behavior
をクリックします。
エラーのみで動作をフィルタリングし、エラーと警告を解釈するチュートリアルについては、AUTOSAR コードの Polyspace 解析でのエラーと警告の解釈を参照してください。
ヒント
コマンド ラインで polyspace-autosar
を実行する場合、AUTOSAR XML 解析段階のみを実行できます。最初に AUTOSAR XML のエラーをすべて修正してから、残りの解析を続行します。
-do-not-update-extract-code
オプションおよび -do-not-update-verification
オプションを使用します。
コードのコンパイル エラーの確認
ソース ファイルにコンパイル エラーが見つかった場合、プロジェクト ステータスは以下のようになります。
Project Status Project is marked created on Sat Dec 23 2017 19:37:53 GMT-0500 (Eastern Standard Time) after completing the following sequence of states in 38.25s:
Execution terminates with In current state, 2 AUTOSAR behaviors are processed, 2 with extracted implementation code and 2 with generated code-prover result. |
上記のメッセージには、コードの抽出時に発生したエラーが示されています。
さらに診断するには、左上隅の アイコンをクリックします。左側のペインで、[Behaviors] をクリックします。内部動作が抽出されたすべてのソフトウェア コンポーネントのリストを確認できます。
エラーがあるコンポーネントに移動するには、文字列 error_atLeastOneRunnableInFileThatDoesNotCompile
を検索します。または、コンパイル エラーがあるソフトウェア コンポーネントのみを確認するには、左側のペインの [Create/Edit Query] をクリックします。[has success] フィルターの選択を解除した後、[検索] をクリックします。
コンパイル エラーがあるソフトウェア コンポーネントは、以下のようになります。
ApplicationComponentBehavior - jyb.tst002.swc001.bhv001 ... ... Extract implementation code Execution reported no error or warning. Extraction of implementation completes with state Found implementation for 3 of 3 required runnables; extracting 4 files from code-source directory. |
エラーがあるソフトウェア コンポーネントを特定します。特定のエラー メッセージを表示するには、コード ソース ディレクトリから抽出されたファイルの数を示す行をクリックします。[Compiler messages] リンクをクリックすると、ランナブルに関して抽出されたファイルのすべてのコンパイル エラー メッセージを含む .log
ファイルが開きます。
最も一般的なコード抽出エラーは、インクルード ファイルの欠落と認識されないデータ型の 2 つです。これらのエラーについては、追加のツールを使用して一度に多くのエラーを修正できます。詳細は、以下を参照してください。
ヒント
1 つ以上のファイルがコンパイルされない場合でも、すべてのファイルがコンパイルされたソフトウェア コンポーネントの解析結果は確認することができます。こうすることで、他の開発を継続したまま、特定のソフトウェア コンポーネントを解析できます。
コマンド ラインで
polyspace-autosar
を実行する場合、コード抽出段階のみを実行できます。最初にコードのエラーをすべて修正してから、解析を続行します。-do-not-update-autosar-prove-environment
オプションおよび-do-not-update-verification
オプションを使用します。