tcovって何?


8.3 tcovプロファイリングコマンド


tcov(1)コマンド-xprofile=tcovオプションを使用してコンパイルされたプログラムでは、ソースコードの逐文プロファイリング情報が生成され、実行された文と実行頻度が表示されます.また、プログラムの基本ブロック構造に関する情報の要約も表示されます.
強化された文レベルのオーバーライド範囲は、-xprofile=tcovコンパイラオプションとtcov-xオプションで呼び出されます.ソースファイルのコピーを出力し、ページの余白に文でカウントを実行します.
注–
コンパイラにインスタンス呼び出しが組み込まれている場合、tcovによって生成されたコードオーバーライド範囲レポートは信頼できません.コンパイラは、必要に応じて-O 3以上の最適化レベルで、-inlineオプションに従ってインラインで呼び出されます.インラインが発生すると、コンパイラは呼び出されたインスタンスの実際のコードでインスタンスの呼び出しを置き換えます.また、呼び出しがないため、tcovはこれらのインライン・インスタンスへの参照を報告しません.したがって、正確なオーバーライドレポートを取得するには、コンパイラインラインを有効にしないでください.

8.3.1強化されたtcov分析


tcovを使用するには、-xprofile=tcovを使用してコンパイルします.プログラムを実行するとき、上書き範囲データはprogramに格納される.profile/tcovdでは、programが実行可能ファイルの名前です.(実行可能ファイルがa.outの場合、a.out.profile/tcovdが作成されます.)
tcov-x dirname source_を実行可能filesは、各ソースファイルとマージされたオーバーライド範囲分析を作成します.対応するレポートは、現在のディレクトリのfileに書き込む.tcov.
簡単な例を実行します.
demo% f95 -o onetwo -xprofile=tcov one.f two.f
demo% onetwo
       ... output from program
demo% tcov -x onetwo.profile one.f two.f
demo% cat one.f.tcov two.f.tcov
                       program one
      1 ->             do i=1,10
     10 ->                   call two(i)
                       end do
      1 ->             end
       .....etc
demo%

環境変数$SUN_PROFCATAと$SUN_PROFDATA_DIRは、中間データ収集ファイルの保存場所を指定するために使用できます.これらのファイルは、旧式と新式のtcovによってそれぞれ作成する*.dおよびtcovdファイル.
これらの環境変数は、異なる実行からの収集データを分離するために使用することができる.これらの変数を設定すると、実行プログラムは実行データを$SUN_に書き込みます.PROFDATA_DIR/$SUN_PROFCATA/のファイル.
同様に、tcovが読み取ったディレクトリもtcov-x$SUN_を通過するPROFCATA指定.$SUNが設定されている場合PROFDATA_DIR,tcovは$SUN_でプリセットされますPROFDATA_DIR/$SUN_PROFCATA/では、作業ディレクトリではなくファイルを検索します.
その後、実行するたびに、より多くのオーバーライド範囲データがtcovdファイルに蓄積されます.プログラムが対応するソースファイルを再コンパイルして初めて実行されると、各ターゲットファイルのデータはすべてクリアされます.tcovdファイルを削除すると、プログラム全体のデータがすべてゼロになります.
詳細については、tcov(1)マニュアルページを参照してください.