gcovの出力結果をEclipseでみる方法を調べてみた。

Eclipse 3.7(Indigo)までは CDT gcov pluginが動いたけど、Eclipse4.2 (Juno)からは、動かない・・・。しかし、代わりに、Eclipse Juno では GCov pluginが動作した。

というわけで、2つの方法を紹介する。

その1CDT gcov plugin

インストール

以下のサイトからダウンロード。

https://sourceforge.jp/projects/ginkgo/

ダウンロードファイルを解凍すると featuresとpluginというファイルがある。

それぞれeclipse.exeと同じフォルダにあるfeaturesとpluginにコピーする。(org.ginko.gcov.feature_0.2.2とorg.ginkgo.gcov_0.2.2.jar)

あとは、- cleanオプションをつけてEclipse再起動。

CDT gcov pluginの設定

[プロジェクトエクスプローラ]からカバレッジを出したいプロジェクトを右クリックしてオプションを選択。

C Coverageという項目があるので、Activate natureを有効にする。

image

gcovを実行して、出力用データを作成する

Eclipseで表示するには、.gcovという形式のファイルをつくる必要がある。
以下の3ステップで作成する。

ビルドして hogehoge.gcnoを作成

ビルドして.gcnoファイルを作成する。
ビルドするときに、以下のオプションをつける。

-fprofile-arcs -ftest-coverage

MakefileだとCFLAGSに追加すればよい。

CFLAGS += -fprofile-arcs -ftest-coverage

実行ファイルを実行して、hogehoge.gcdaを作成

実行ファイル(.exe)を実行すると、*.gcdaができる。
自分の場合はGoogleTestでテストコードを書いて、テストを実行することで、カバレッジを得る。

gcovコマンドを実行して、hogehoge.c.gcovを作成

Eclipseでカバレッジを得るには、もう一工夫必要。
実行してできた、hogehoge.gcdaに対し、以下のコマンドを実行するとhogehoge.c.gcovというファイルができる。

gcov hogehoge.gcda

その2 GCov plugin を使う

以下からダウンロード。
https://wiki.eclipse.org/Linux_Tools_Project/GCov/User_Guide

ちなみに、Pleades日本語プロジェクトからEclipse 4.2 CDTを落としてきたら、Defaultでついていた。
https://mergedoc.sourceforge.jp/index.html#/pleiades.html

hogehoge.gcdaを作る

つくりからは上に同じ。
作成したら、プロジェクトビューから、作成したhogehoge.gcdaを開く。
実行バイナリファイルに含まれるすべてのカバレッジデータを出力するか、ファイル単位で出力するかを選択する。

image

ファイル単位で開いてみると、カラー表示されたカバレッジ出力結果が表示される。

image

実行バイナリファイル単位で表示すると、gcovビューにカバレッジの集計が見える。
(開くまで時間がかかる)

image

(GCovユーザガイド)https://wiki.eclipse.org/Linux_Tools_Project/GCov/User_Guide#Installation_and_Set-Up