マニュアルページ tcov.1




名前

     tcov - ソースコードテストカバレージ解析用の文単位のプロ ファ
     イル


形式

     tcov [ -a ] [ -n ] [ -o filename ] [ -p oldpath newpath ]
          [ -x dir ] files ...



機能説明

     tcov は、コンパイルしたプログラムのテストカバレージ解析を 生
     成 します。tcov は、引数としてソースファイルを取り、注釈付き
     のソースリストを生成します。出力上、コードの各基本ブロック (
     ま たは、tcov に -a オプションを指定する場合は、各行) の先頭
     には、そのセグメント (行) の実行回数が示されます。また、実行
     さ れ な かった行の先頭には、#### が示されます。基本ブロック
     は、分岐のないコードの隣接するセクションです。基本ブロックの
     各文は、同じ回数実行されます。

     tcov を使用するには、プログラムは -xprofile=tcov または  -xa
     コンパイラオプションでコンパイルしなければなりません。

     tcov カバレージ解析には 2 つの実装があります。 -xa オプ ショ
     ンでコンパイルすると、オリジナルの「古いスタイルの」カバレー
     ジ解析用のオブジェクトコードが準備されます。

     -xprofile=tcov コンパイラオプションでコンパイルし、 tcov  -x
     dir オプションを使用すると、拡張された「新しいスタイルの」カ
     バレージ解析が呼び出されます。

     どちらの場合も、ソースファイルのコピーと (そのマージンに) 文
     の実行回数が出力されます。

     「古いスタイル」の tcov :
     -xa コンパイラオプションでプログラムをコンパイルします。これ
     に よ り、 コ ン パ イ ル したソースファイルごとに、ファイル
     $TCOVDIR/file.d が生成されます。環境変数 TCOVDIR を設定し て
     いない場合、.d ファイルは現在のディレクトリに格納されます。

     プログラムの実行。プログラムのコンパイル時に、.d ファイル は
     更新されます。コンパイルが正常に終了しなければ、カバレージ解
     析は生成されません。ソースファイル付きカバレージ解析を表示す
     る に は、 tcov をソースファイルで実行します。コンパイルした
     ソースファイルごとの注釈付 き 解 析 ファ イ ル の 名 前 は、
     $TCOVDIR/file.tcov です。

     tcov が生成する出力は、文または文のグループのそれぞれがそ の
     実 行の中で実際に何回実行されたかを示します。tcov オプション
     -a を指定すると、実行されなかった文の左側に ####-> のマー ク
     が付きます。


     「新しいスタイルの」拡張された tcov 解析:
     tcov を使用するときは、 -xprofile=tcov でプログラムをコン パ
     イルすることを推奨します。プログラムを実行するとき、カバレー
     ジデータは program.profile/tcovd (program は実行可能ファイル
     の 名 前) に格納されます。たとえば、実行可能ファイルが a.out
     の場合、ファイル a.out.profile/tcovd が作成されます。

     コンパイルとリンクを別の段階で行う場合、コンパイルとリンクで
     は同じ -xprofile オプションを使用し、ld ではなく、コンパイラ
     でリンクを行います。

     tcov -x dir file ... を各ソースファイルで実行する と、 カ バ
     レー ジ 解 析 と そ の ソー スファイルがマージされたファイル
     file.tcov が現在のディレクトリに作成されます。また、 ソー ス
     ファイルごとに別の .tcov ファイルも作成されます。

     環境変数 SUN_PROFDATA と SUN_PROFDATA_DIR を使用すると、中間
     データ収集ファイルを保存する場所を指定できます。古いスタイル
     の tcov の場合、中間データ収集ファイルは *.d ファイルで、 新
     し い ス タイルの tcov の場合は *.tcovd ファイルです (後述の
     「環境」を参照)。

     これ以降に何 回 も 実 行 す る と、 カ バ レー ジ デー タ は
     program.profile/tcovd ファイルに累積されます。各オブジェクト
     ファイルのデータは、再コンパイル後、最初にプログラムを実行す
     るとゼロにされます。全プログラムのデータは、tcovd ファイルを
     削除するとゼロにされます。


オプション

     -a   各文の実行回数を表示します。 -a を指定しない場合、 コー
          ド の各基本ブロックにおける先頭の文の実行回数だけが表示
          されます。

     -n   実行回数が最も多い n 個の文の行番号とそれぞれの実行回数
          を示すテーブルを表示します。


     -o filename
          file.tcov の代わりにファイル名 filename へ出力 で き ま
          す。 filename が "-" である場合は、file.tcov の代わりに
          標準出力に出力されます。このオプションは TCOVDIR 環境変
          数 に指定されたディレクトリを変更します (後述の「環境」
          を参照)。

     -p originalpath newpath
          コンパイルした時と tcov を実行する時のソースファイル の
          パ ス が 違う場合 -x オプションは混乱を招く恐れがありま
          す。同じディレクトリに対してマウントするポイントが違 う
          2  つのマシンを使用している場合に、この状況はよく起こり
          ます。このオプションを使用すると、コンパイル時 に  ori-
          ginalpath  で 修飾していたすべてのソースファイルを tcov
          の実行時には newpath で修飾するように tcov に指示できま
          す。 -p オプションは好きな数だけ指定できます。

     -x dir
          「新しいスタイル」の tcov カバレージ解析。ソースファ イ
          ル は -xprofile=tcov コンパイラフラグでコンパイルしなけ
          ればなりません。dir は、カバレージファイルが格納され る
          ディ レ ク ト リ の 名 前 で す。 通 常 は、 この名前は
          program.profile/ (program はコンパイルした実行可能 ファ
          イルの名前) です (たとえば、a.out.profile)。

          -x dir を指定しない場合、「古いスタイル」の tcov  カ バ
          レージが仮定されます。


使用例

     古いスタイルの tcov:

          demo% cc -o myprog -a alpha.c beta.c gamma.c
          demo% myprog      program execution
          demo% tcov -a alpha.c beta.c gamma.c
          demo% cat alpha.tcov beta.tcov gamma.tcov

     新しい拡張された tcov:

          demo% cc -o myprog -xprofile=tcov alpha.c beta.c gamma.c
          demo% myprog      program execution
          demo% tcov -x myprog.profile alpha.c beta.c gamma.c
          demo% cat alpha.c.tcov beta.c.tcov gamma.c.tcov




環境

     TCOVDIR   「古いスタイル」のカバレージ解析 ( -x オプションな
               し )。 コンパイル時に TCOVDIR 環境変数を設定する場
               合、この環境変数は file.d ファイルが書き込まれる場
               所を指定します。tcov 実行時には、file.d が存在する
               場所と file.tcov カバレージ解析ファイルが書き込 ま
               れる場所を指定します。ユーザーによるプログラムの実
               行時には効果がありません。

     「新しいスタイル」のカバレージ解析
               ( -x オプション付き)。次の SUN_PROFDATA_DIR と同じ
               です。

     SUN_PROFDATA_DIR/SUN_PROFDATA
               「新しいスタイル」のカバレージ解析。これらの環境変
               数 を設定する場合、tcov はパフォーマンスカバレージ
               データを $SUN_PROFDATA_DIR/$SUN_PROFDATA/ に あ る
               ファイルに書き込みます。

               設定する場合、$SUN_PROFDATA は、program.profile の
               代 わりに、tcov が読み取るディレクトリの名前として
               使用されます。この場合、適切な tcov コマンドは次の
               ようになります。be:

                   demo% tcov -x $SUN_PROFDATA source_files...

               SUN_PROFDATA_DIR を設定する場合、現在のディレク ト
               リ の代わりに、tcov がカバレージファイルを探すディ
               レクト リ と し て 使 用 さ れ ま す。 TCOVDIR  と
               SUN_PROFDATA_DIR  の両方を設定する場合、警告が発行
               され、SUN_PROFDATA_DIR が使用されます。


ファイル

     -x フラグがない場合 (古いスタイルの tcov):
               file.d コンパイルされたソースファイル用にコンパ イ
               ラが作成した入力テストカバレージデータファイル

               file.tcov 出力テストカバレージ解析一覧ファイル

     -x フラグがある場合 (新しいスタイルの tcov):
               myprog.profile/tcovd 入力テストカバレー ジ デー タ
               ファイル

               file.c.tcov 出力テストカバレージ解析一覧ファイル (
               ファイル拡張子を含む:alpha.c.tcov)

               上記 SUN_PROFDATA_DIR と SUN_PROFDATA 環境変数も参
               照してください。



関連項目

     acc(1)、(SPARC プラッ ト フォー ム の み )  cc(1)CC(1)f77(1)f95(1)  (SPARC  プ ラッ トフォームのみ) gprof(1)prof(1)exit(2)



診断

     premature end of file
          文をまったく含まないルーチンが検出されると、 こ の メッ
          セージが出力されます。


使用上の留意点

     マルチプロセッサ/マルチスレッド化されたプログラムで tcov  を
     使用する場合:
     -a (または -xa ) オプションでコンパイルした MP/MT プログラム
     を実行すると、予想外の結果が生成されます。 -xprofile=tcov オ
     プションは、MP/MT プログラムでも使用できますが、tcov の出 力
     は、ゼロまたは非ゼロの値の場合だけに有効です。実行回数は正し
     くありません。

     基本ブロック数は、 unsigned int によって表現される値を超える
     ことができません。


     tcov は、#line および #file 命令を含むファイルをサポートしま
     せん。

     解析対象のプログラムが exit(2) を呼び出すか、正常に制御を 戻
     していないと、カバレージ情報は .d ファイルに保存されません。