2. 機 能
2.13 カバレッジの測定【IECUBE】 【シミュレータ】
この節では,カバレッジ機能を使用した,カバレッジ測定について説明します。
カバレッジ測定の方法にはいくつかの種類がありますが,CS+では次の領域を対象に,ソース行/関数に対する フェッチ系のコード・カバレッジ測定(C0カバレッジ),および変数に対するアクセス系のデータ・カバレッジ測定を 行います。
カバレッジ測定の対象となる領域は次のとおりです。
表 2.16 カバレッジ測定の対象領域
注意 【E1】【E20】【EZ Emulator】
カバレッジ機能はサポートしていません。
備考 C0カバレッジ:命令網羅率(ステートメント・カバレッジ)
たとえば, コード内のすべての命令(ステートメント)を 少なくとも1 回は実行した場合,C0 = 100
%となります。
2.13.1 カバレッジ測定の設定をする
カバレッジ機能を使用するためには,あらかじめカバレッジ測定に関する設定を行う必要があります。
なお,設定方法は,使用するデバッグ・ツールにより異なります。
2.13.1.1 【IECUBE】の場合 2.13.1.2 【シミュレータ】の場合
2.13.1.1 【 IECUBE 】の場合
設定は,プロパティ パネルの[デバッグ・ツール設定]タブ上の[カバレッジ]カテゴリ内で行います。
図 2.131 [カバレッジ]カテゴリ【IECUBE】
(1) [カバレッジ結果を再利用する]
デバッグ・ツールと切断時に,現在取得しているコード・カバレッジ測定結果を自動保存し,次回デバッグ・
ツールと接続した際に,保存した測定結果の内容を再現するか否かを選択します。
前回取得したコード・カバレッジ測定結果の内容を再現する場合は,[はい]を選択してください(デフォル ト:[いいえ])。
なお,測定結果を保存するファイル(raw.csr.cv)は,現在ダウンロードしているロード・モジュール・ファイ ルが存在するフォルダに作成されます。
2.13.1.2 【シミュレータ】の場合
設定は,プロパティ パネルの[デバッグ・ツール設定]タブ上の[カバレッジ]カテゴリ内で行います。
図 2.132 [カバレッジ]カテゴリ【シミュレータ】
(1) [カバレッジ機能を使用する]
カバレッジ機能を使用するか否かを選択します。
カバレッジ機能を使用する場合は[はい]を選択してください(デフォルト:[いいえ])。
デバッグ・ツール 対象領域
IECUBE 内部ROM/RAM,データフラッシュ,ターゲット・メモリ
シミュレータ 内部ROM/RAM,エミュレーションROM/RAM,ターゲット・メモリ
(2) [カバレッジ結果を再利用する]
このプロパティは,[カバレッジ機能を使用する]プロパティにおいて[はい]を選択した場合のみ表示されま す。
デバッグ・ツールと切断時に,現在取得しているコード・カバレッジ測定結果を自動保存し,次回デバッグ・
ツールと接続した際に,保存した測定結果の内容を再現するか否かを選択します。
前回取得したコード・カバレッジ測定結果の内容を再現する場合は,[はい]を選択してください(デフォル ト:[いいえ])。
2.13.2 カバレッジ測定結果を表示する
プログラムの実行が開始すると自動的にカバレッジ測定が開始し,実行停止とともにカバレッジ測定も終了します。
(1) コード・カバレッジ率
(a) ソース行/逆アセンブル行に対するコード・カバレッジ率の表示
対象となるプログラムを表示しているエディタ パネル/逆アセンブル パネルで行われます。
各パネルでは,表 2.17に示す計算方法で算出されたコード・カバレッジ率を基に,対象ソース・テキスト行
/逆アセンブル結果行の背景色が表 2.18のように色分け表示されます。
ただし,デバッグ・ツールと切断時,またはプログラム実行中は,結果の表示を行いません。
なお,取得したコード・カバレッジ測定結果は,エディタ パネル/逆アセンブル パネル上のコンテキスト・
メニューの[カバレッジ情報のクリア]を選択することにより,すべてリセットすることができます(各パネ ル上の色分け表示もクリアされます)。
表 2.17 ソース行/逆アセンブル行に対するコード・カバレッジ率の計算方法
表 2.18 コード・カバレッジ測定結果の表示色(デフォルト)
備考 1. 各パネルにおけるコード・カバレッジ測定結果の表示更新は,プログラム停止ごとに自動的に 行われます。
備考 2. 上記の背景色は,オプション ダイアログにおける[全般 - フォントと色]カテゴリの設定に依 存します。
備考 3. 上記の背景表示は,対象領域外(「表 2.16 カバレッジ測定の対象領域」参照)の行に対しては 行われません。
備考 4. ダウンロードしているロード・モジュールの更新日時より,現在オープンしているソース・
ファイルの更新日時が新しい場合,エディタ パネルではコード・カバレッジ測定結果の表示は 行われません。
パネル 計算方法
エディタ パネル “ソース行と対応するアドレス範囲内で実行されたバイト数”÷“ソース行と対応 するアドレス範囲内の総バイト数”
逆アセンブル パネル “逆アセンブル結果行と対応するアドレス範囲内で実行されたバイト数” ÷“逆ア センブル結果行と対応するアドレス範囲内の総バイト数”
コード・カバレッジ率 背景色
100 % 1~99 % 0 %(未実行)
ソース・テキスト/逆アセンブル結果 ソース・テキスト/逆アセンブル結果 ソース・テキスト/逆アセンブル結果
図 2.133 コード・カバレッジ測定結果の表示例(エディタ パネル)
図 2.134 コード・カバレッジ測定結果の表示例(逆アセンブル パネル)
(b) 各関数に対するコード・カバレッジ率の表示
各関数に対するコード・カバレッジ率(関数の網羅率)は,解析ツールの関数 パネル内[コード・カバレッ ジ]項目で確認することができます。
“関数のコード・カバレッジ率”についての詳細は,「CS+ 統合開発環境 ユーザーズマニュアル 解析編」を参 照してください。
(2) データ・カバレッジ率
各変数に対するデータ・カバレッジ率は,解析ツールの変数 パネル内[データ・カバレッジ]項目で確認する ことができます。
“変数のデータ・カバレッジ率”についての詳細は,「CS+ 統合開発環境 ユーザーズマニュアル 解析編」を参照 してください。
この行のコードを100% で実行
この行のコードを0% で実行(未実行)
この行のコードを100% で実行
この行のコードを0% で実行(未実行)