[[PageNavi(NavigationList)]]
=== 使用方法 ===
[readme readme]の「4.ユーザ空間のプログラムのカバレッジデータをアクセスする方法の例」に書かれている方法の通りなのですが、分かりにくいので、1つ1つ説明していきます。[[BR]]
1. まず、前提条件としてgccにてコンパイルするときに、オプションに「{{{-fprofile-arcs}}}」と「{{{-ftest-coverage}}}」が指定されている必要があります。[[BR]]
あと、リンク時に{{{-lgcov}}}の指定を忘れずに。[[BR]]
例えば、ソースファイルがmain.cだとすると、通常は
{{{
gcc -g -c main.c
gcc -o a.out main.o
}}}
という感じでコンパイル、リンクするところを、
{{{
gcc -g -fprofile-arcs -ftest-coverage -c main.c
gcc -o a.out main.o -lgcov
}}}
で、コンパイル、リンクすることになります。[[BR]]
そうそう、上記の例ではやっていませんが、「{{{-O0}}}」(※大文字のオーとゼロです)はつけた方がいいです。理由ですが、最適化してしまうと、うまくできないことがあるんです。なので、最適化しないよう、「{{{-O0}}}」をつけることをお勧めします。
2. カウンターをリセットするために、[[BR]]
「{{{lcov --directory appdir --zerocounters}}}」 、もしくは、「{{{lcov -d appdir -z}}}」[[BR]]
(「appdir」はソースがあるディレクトリです。)[[BR]]
と[readme readme]には書かれていますが、必ずしも行う必要はありません。[[BR]]
これは、gcovの*.daファイルに記録されている実行カウンター(どこが何回実行されたか)を初期化しているのですが、まだ1度もプログラムを起動していなければ、カウンター値は0なので、行う必要なしです。
3. プログラムを実行してください。[[BR]]
例えば、[[BR]]
{{{./a.out}}}[[BR]]
を実行する。[[BR]]
4. ファイルに現在のカバレッジの状態をキャプチャする[[BR]]
[readme readme]には、[[BR]]
{{{lcov --directory appdir --capture --output-file app.info}}}[[BR]]
もしくは、
{{{lcov -d appdir -c -o app.info}}}
[[PageNavi(NavigationList)]]