2016-11-08 48 views
0

"--coverage -fprofile-arcs -ftest-coverage"でカバレッジテスト用のプロジェクトをビルドし、ビルドとソースを別のユーザディレクトリに移動してテストを実行すると、 ":開くことができませんソースファイルXXX/CC/CC/getopt_log.c" とは、以下のようにgcdaと呼ばれたソースファイルのパスを変更する方法は?

詳細: 処理CS/CMakeFiles/CFA/__/SRC /ベース/ fault_injection私は、次のようなので、多くの問題を取得します。 c.gcda /home/cov/build/xfcq/src/base/fault_injection.c:cannotオープンソースのファイル

"/home/cov/build/xfcq/src/base/fault_injection.c" のパスビルド環境のパス、相対パスまたは指定したパスとして変更する方法です。

私はGCOV_PREFIXとGCOV_PREFIX_STRIPを使用しようとしましたが、これらはうまく動作しません。

lcovに-bオプションを追加しようとしましたが、うまく動作しません。例えば、lcov --gcov-tool =/bin/gcov -d。 -b xx/src -t "xfcq" -o test_cov.info

あなたはそれを解決することをお考えですか?

答えて

0

gcovカバレッジプロセスを使用すると、プロジェクトをビルドした後で絶対にファイルを移動しないでください。代わりに、自動ビルドスクリプトを変更してすべてを必要な場所にビルドする必要があります。

指定したオプションでプロジェクトをコンパイルすると、ソースファイルごとに*.gcno個のファイルが生成されます。これは必ず関連するソースファイルの詳細のようなフローチャートです。
したがって、すべての実行情報を含む*.gcdaファイルを生成するために、ステートメントの行が実行されるたびに、オブジェクトファイルに関数をトリガして(カバレッジ情報を生成するためにコンパイラによって追加されるように)インストルメントされます。
注:問題の3つのオプション(--coverage -fprofile-arcs -ftest-coverage)が指定されていることがわかります。これはもう一度間違っています。--coverageは他の2つの代替として機能します。

--coverageと指定した場合は、コンパイルとリンクも行います(ただし、両方の場所で確実に使用してください)。

関連する問題