概要
gccのテストカバレッジツールであるgcovを使ったテストカバレッジ計測と、そのgcovを利用する際に生成される.gcno
や.gcda
などのデータファイルについて簡単に整理します。
gcovとは
gcovとは、GCCと合わせて利用できる、テストカバレッジ計測ツールです。
gcov データファイルとは
gcovによるテストカバレッジ計測において、2種類のファイルがプロファイリングにおいて使われます。
カバレッジ計測対象の.cファイル対して、同じファイル名でサフィックス異なるファイルが生成されます。
例えば、list.c
というファイルに対してのテストカバレッジ結果は、 list.gcno
またはlist.gcda
という2種類のファイルが生成され、これらは特定のプラットフォームに依存しない形式で保存されたカバレッジとプロファイルデータが含まれています。
.gcno
ファイルはカバレッジ計測対象のファイルと同じディレクトリに生成されます。
.gcda
ファイルは、デフォルトでは同様に同じディレクトリ配下に生成されますが、GCCの-fprofile-dir
オプションを指定すると生成先ディレクトリを変更できます。
.gcnoファイルについて
.gcno
は notes file(no
)を意味し 、ソースファイルが GCCのftest-coverage
オプションを指定してコンパイルすると生成されます。
このファイルは、基本のブロックグラフと、そのブロックに対するソースコード上の行番号を再構築するための情報を含みます。
.gcdaファイルについて
.gcda
はcount data file(cda
)を意味し、オブジェクトファイルを含んだソースファイルがGCCの-fprofile-arcs
オプションを指定してコンパイルされると生成されます。
このオプションによって、オブジェクトファイルごとに.gcda
ファイルが生成されます。
このファイルは、 テスト実行における対象のコード内の分岐の遷移回数や、値のプロファイルカウント、さらにはカバレッジ結果のサマリ情報を含みます。
これらのファイルは直接アクセスすることは推奨されていません。 gcovのユーザはgcovツールが--json-formatオプションで提供される中間フォーマットを使うべきとされています。
参考情報
- gcovの利用方法について gcov の使い方 - まめめも