13

gcov カバレッジ分析から特定の関数またはコード行を除外することは可能ですか。私のコードには、デバッグに使用される特定の関数が含まれており、テスト スイートの一部としては実行されません。このような関数は、gcov によって報告されるカバレッジのパーセンテージを減らします。これらの機能を結果から除外したいと思います。gcovで出来ないならlcovで出来るのかもしれませんが分かりませんでした。あなたの助けに感謝します。

4

1 に答える 1

6

単純なawkスクリプトを介してlcov--captureの出力を実行することにより、特定のソースファイルをフィルターで除外します。lcov --captureの出力は非常に単純な形式であり、以下のawkスクリプトはfile_patternに一致するソースファイルを除外します。スクリプトを適応させて、ファイル名の代わりに関数をフィルタリングすることは可能だと思います。

BEGIN {
        record=""
}

/^SF/ {
        if ( match ($0, "file_pattern" ) ) {
            doprint = 0
        } else {
            doprint = 1
        }
}

/^end_of_record$/ {
        if ( doprint ) {
            print record $0
        }
        record = ""
        next
}

{
    record=record $0 "\n"
}
于 2010-09-02T12:16:34.210 に答える