C言語によるソフトウェアを開発するときに、gcovを使用するとソフトウェアの品質を向上させることができます。 gcovは、 テストカバレッジプログラムです。 GNU CCとともに使用してプログラムの分析を行えば、 より効率的 かつ高速に動作するコードを生成することができます。 また、プロファイリング・ツールとして使用することができ、別のプロファイリングツールであるgprofと共に使用して、 コードのどの部分が最も多く計算時間を消費しているかなど、次の基本的なパフォーマンスの統計値を知ることができます。

  • 各コード行が実行される頻度
  • 実際に実行されるコード行
  • コードの各セクションが消費する計算時間

ここでは、Eclipse(eclipseバージョン:Juno Service Release 2)上で、ツールチェーンがMinGW GCCにより、C言語を開発するときのgcovの使い方を説明します。

Eclipse用gcovプラグインの設定

次のURLからEclipse用のgcovプラグインをダウンロードします。「ginkgo 0.2.2 (日付: 2008-08-09) 」が最新版でした。

http://sourceforge.jp/projects/ginkgo/

解凍すると、featuresのフォルダにはorg.ginko.gcov.feature_0.2.2、pluginsフォルダにはorg.ginkgo.gcov_0.2.2.jarのファイルがあるので、それぞれeclipse.exeと同じフォルダにあるfeaturesとpluginに、解凍したフォルダとファイルをコピーする。

gcovを使用するためのEclipse上でのコンパイル

Eclipseを起動し、gcovで解析するC言語のソースコードを作成します。次のようになります。

void main(void) とコードを書くと、「warning: return type of ‘main’ is not ‘int’」のワーニングが出ます。昔はこれでよかったのですが、今は、ISOの規格では戻り値はintになっています。

gcov設定手順-初期時

Eclipseに設定したgcov pluginを有効にするために、[プロジェクトエクスプローラ]からカバレッジを出したいプロジェクトを右クリックして「プロパティ」を選択し、「C Coverage」の「Activate nature」を有効にする。

コンパイルするときは次のパラメータを設定するため、上記と同じ操作でプロパティを表示させ、「C/C++ビルド」の「設定」で「ツール設定」タブを表示させ、「GCC C Compiler」の「その他」で設定します。

-fprofile-arcs -ftest-coverage

コンパイルパラメータの設定

リンクするときは、次のパラメータを設定するため、同様にプロパティを表示させ、「C/C++ビルド」の「設定」で「ツール設定」タブを表示させ、「GCC C Linker」の「その他」で設定します。

-fprofile-arcs

リンクパラメータの作成

コンパイルが完了すると、Debugフォルダにgcovtest.gcnoファイルが作成されます。

gcnoファイルの作成

gcovによるカバレッジデータの作成

作成したプログラムを実行すると、Debugフォルダにgcovtest.gcdaファイルが作成されます。このファイルをダブルクリックするとダイアログが表示され、「Show Coverage details for “gcovtest.c” only」をチェックして、OKボタンを押し、カバレッジデータの作成を指示します。

gcovによるカバレッジデータの作成

実行した回数を含むトレースしたgcovにより作成されたカバレッジデータが、次のように表示されます。

gcovによるカバレッジデータ

表示されたダイアログで、「show coverage for the whole selected binary file」をチェックしても、次のようにすべてゼロで表示されます。これはプラグインのどうも不具合のようです。
(参考URL:https://www.eclipse.org/forums/index.php/t/286377/)

[responsive][/responsive]