ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS

FAQ / カバレッジマスターwinAMS

CasePlayer2解析に関する問題

D01_01: 詳細解析モードを使用する場合、または、CasePlayer2でカバレッジマスターとの連携を行う場合に必要な基本的な設定について教えてください。

【質問】
CasePlayer2を使って、カバレッジマスターとの連携に必要な「詳細解析」を行おうとしています。最初に行わなければならない設定について教えて下さい。

【回答】
カバレッジマスターとCasePlayer2を連携して、C1カバレッジ、MC/DC計測や、単体テストでの入力/出力変数の自動抽出、カバレッジ計測のテストデータ生成機能を使用するためには、CasePlayer2で対象ソースコードを正しく解析する必要があります。

 ※カバレッジマスターゼネラルで、実行コード(*.xlo)を出力する場合も必要です。

CasePlayer2の解析は、ソースコードの言語仕様に合わせて、CasePlayer2内蔵のANSI-C、C99、GNU-C、VC++、C++の解析エンジンで言語解析するものです。これは、各言語仕様のコンパイラでコンパイルするのと同じような処理に当たります。

CasePlayer2の解析結果を使用するためには、解析処理において、ワーニング(警告)以外の全てのエラーを除去する必要があります。

作業としては、CasePlayer2の「プロジェクト」メニューから「全仕様書生成」を行うことで、解析が開始しますが、解析できないエラーがある場合には、画面下の「出力」に表示されます。これをすべて除去する必要ああります。

CasePlayer2で正しく 詳細解析を行うためには、以下の設定を行う必要があります。

1)CasePlayer2の「仕様書生成」の設定で、詳細解析モードをONにする
CasePlayer2の「設定」タブの「仕様書生成」の設定画面で、以下のオプションをONにします。
 ・□詳細解析を行う
 ・□winAMS用プログラム解析情報を生成する (カバレッジマスターとの連携の場合)
カバレッジマスターとの連携に必要なオプションは、上記2つのみです。


(クリックで拡大)

また、生成したい仕様書の種類に応じて、「オプション生成」「モジュール仕様書の情報追加」にオプションを追加してください。

2)言語仕様の選択
CasePlayer2プロジェクトの作成時に、テスト対象のソースコードの言語仕様に合わせて、ANSI-C、C99、GNU-C、VC++のモードを選択します。C++言語の場合には、このオプションを指定します。ANSI-C以外の言語モードの使用には、CasePlayer2の「拡張言語解析オプション」の追加購入が必要です。このオプションが含まれていない時には、言語選択画面で、このオプションがグレーアウトされ選択できません。

プロジェクト新規作成時の画面、またはプロジェクト作成後「プロジェクト」メニューの「プロパティ」にて変更できます。

3)プリプロセッサの設定
「設定」タブの「プリプロセッサ」の設定で行います。通常の開発環境で設定しているものと同様に、CasePlayer2の解析においても、ヘッダファイルの検索順を指定する「システムインクルードパス」、「ユーザーインクルードパス」の指定が必要です。クロスコンパイラに指定している情報と同じ検索順を指定して下さい。また、#ifdefなどの切り替えをコンパイルスイッチ(開発環境のプリプロセッサ設定)で指定している場合には、これと同じ内容を「#define」の設定に加えて下さい。

(参考)インクルードパスの設定が適切でない場合は、以下の様なエラーが出力されます。
 CasePlayer2: No such file or directory
 CasePlayer2-E-CPP : ファイルのI/Oエラーが発生しました.(ヘッダファイルのパス)


(クリックして拡大)

4)Cオプションパラメータ の設定
「設定」タブの「Cオプションパラメータ」の設定で行います。


(クリックして拡大)

この設定は、開発に使用しているクロスコンパイラ独自の方言に対応するためのものです。CasePlayer2の解析エンジンは、指定した言語仕様に対応していますが、クロスコンパイラ独自の言語仕様(方言)には対応できません。このため、ソースコードに記述された方言を、解析時にどのように扱うかを設定します。

この設定は、ユーザーがマニュアルで行う事もできますが、プロジェクト新規作成時の画面で、「ターゲットCPU及びコンパイラ固有の設定」により、使用するマイコンとコンパイラを選択しておけば、「Cオプションパラメータ」は自動設定されます。各コンパイラの標準的な記述であれば、自動設定されるパラメータで、方言を含むソースは正しく解析できます。ただし、コンパイラのバージョンアップや仕様拡張などで、新たな記述やキーワードが追加された場合は、ユーザーが「Cオプションパラメータ」に設定を加えることで、対応が可能です。
(※「ターゲットCPU及びコンパイラ固有の設定」は、プロジェクト新規作成時の画面でのみ選択可能です。プロジェクト作成後に選択を行う事はできません。この場合は、再度プロジェクトを作成頂く必要があります。)


(クリックして拡大)

設定の代表的な例は、以下の通りです。

■ユーザーキーワード

記述例1: int near p1; ←near がエラーとなる
nearは「型修飾子」です。これを型修飾子として認識させるために、nearのキーワードに「TYPEATT」指定します。

キーワード:near、 種類:TYPEATT、 後述記述:[空白]

記述例2: direct int array[100]; ←direct がエラーとなる
directは「記憶クラス」です。これを記憶クラスとして認識させるために、directのキーワードに「STRAGE」指定します。

キーワード:direct、 種類:STRAGE、 後述記述:[空白]

記述例3: __asm (“ ....... “) ←__asm がエラーとなる
__asmは「インラインアセンブラ記述」です。これをインラインアセンブラ記述として認識させるために、__asmのキーワードに「ASM」指定します。また、このキーワードに続く記述が__asmの内容の記述であることを示すために、後置記述に「(EXPRESSION)」を指定します。

キーワード:__asm、 種類:ASM、 後述記述:(EXPRESSION)

記述例4: __except ←__except がエラーとなる
__exceptは例外処理を示すコンパイラ浦独自の記述文法です。この記述全体を無視させるために、__exceptのキーワードに「IGNORE」指定します。また、このキーワードに続く記述が__exceptの内容の記述であり、同時に無視させるために、後置記述に「(EXPRESSION)」を指定します。

キーワード:__except、 種類:IGNORE、 後述記述:(EXPRESSION)

■置き換えキーワード

記述例1: typedef __WCHAR_T_TYPE__ _Wchart; ←__WCHAR_T_TYPE__がエラーとなる
このエラーを回避するために、__WCHAR_T_TYPE__をint型に置換して解析させます。このために、置き換えキーワードの機能を使います。

新キーワード:__WCHAR_T_TYPE__, 既にあるキーワード int

記述例2:  typedef __SIZE_T_TYPE__ _Sizet; ←__SIZE_T_TYPE__がエラーとなる
このエラーを回避するために、__SIZE_T_TYPE__をint型に置換して解析させます。このために、置き換えキーワードの機能を使います。

新キーワード:__SIZE_T_TYPE__, 既にあるキーワード int


上記の2つのオプションでほとんどのケースに対応できます。その他の設定につきましては、ヘルプマニュアルをご参照下さい。

【補足資料】
CasePlayer2チュートリアル(PDFファイル)

【補足情報】
ルネサス製(旧NEC系)のクロスコンパイラで、デバイスファイルを使用してi/oポートを定義している場合は、i/oポート名を解析するために、この情報をヘッダファイルとして解析に加える必要があります。詳細は下記のFAQをご覧ください。


IAR社製コンパイラを利用している場合は、設定内容を効率的に取り込める方法があります。 詳細は下記のFAQをご覧ください。

関連サポート情報検索

【サポート情報サイト内Google検索】

検索キーワード: 解析エラー | 詳細解析モード

他のキーワード検索


参考情報・リンク