2012-11-14 59 views
20

lcovを使用してプロジェクトでカバレッジ情報を作成しました。しかし、私はラインカバレッジと機能カバレッジ統計情報だけを得ることができます。Lcov:ブランチカバレッジ統計情報を収集できません

lcov version:1.10, gcov version:4.4.5 

私が使用するコマンドは次のとおりです。

Deleted 23 files 

Writing data to /work/li/log/lcov.info 

Summary coverage rate: 

    lines......: 45.4% (65087 of 143496 lines) 

    functions..: 46.1% (5575 of 12102 functions) 

    **branches...: no data found** 

だから何の支店のカバレッジの結果がなかった。これら二つのコマンドの後、私はある結果を得た

lcov -d $OSPL_HOME/src -d $OSPL_OUTER_HOME/src -c -o /work/li/log/lcov-raw.info 

lcov -r /work/li/log/lcov-raw.info "*.ll" "*.yy" "*.yy.c" yaccpar "TAO161*" "/usr/include/*" "*/testsuite/*" -o /work/li/log/lcov.info 

。どうして?どうしたの?そして、どうやってこれができますか?私はここで混乱しています。

は、最初のコマンドの後、私はこのような警告の多くを得た:

geninfo: WARNING: cannot find an entry for ..#..#code#accum.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#at.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#autodef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#copyof.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#debug.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#define.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#dump.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#error.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expand.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expr.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#if.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#include.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#io.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#is.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#line.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#pragma.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#preprocess.c.gcov in .gcnofile, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#set.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#sharp.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#symtbl.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#undef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#while.c.gcov in .gcno file , skipping file! 
+2

あなた自身の質問に対する回答として回答を追加してください。私はそれが非常に有用であることが分かった – nwellnhof

+0

以下にコミュニティWikiの回答を追加しました。著者がこの質問に戻ると、自分の回答を追加して報酬を得ることができます。 –

+0

[lcovのブランチカバレッジデータの生成]の可能な複製(http://stackoverflow.com/questions/12360167/generating-branch-coverage-data-for-lcov) – Hcorg

答えて

25

私はピーターOberparleiter、geninfoの作者からの電子メールを得ました。私は次のように答えを得た。

LCOV 1.10には、デフォルトでブランチカバレッジが無効になっています。これを有効にするには、lcovrcファイル(man lcovrcを参照)を変更するか、lcov/genhtmlを実行するときに--rc lcov_branch_coverage=1を指定します。

LCOV 1.10を使用せずにブランチカバレッジを取得していない場合は、GCCのバージョンでこの情報が提供されていない可能性があります。

(。上記の解答が誤っthe authorで質問に追加された

11

上に与えられた解決策:

--rc lcov_branch_coverage=1 

は、lcovとGENHTMLの両方に使用私のために働きました。

関連する問題