問題タブ [gcov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
9202 参照

embedded - 組み込みでコードカバレッジを行う方法

非 POSIX 組み込みシステム用のプロジェクトを作成しているため、gcc オプション --coverage を使用できません (読み取りも書き込みもありません)。gcov のような出力を生成するために他に何ができますか。私は出力機能を持っています。

0 投票する
2 に答える
2387 参照

macos - Mac OS X Lion および XCode 4 / llvm-g++-4.2 ではコード カバレッジはありません

他の人がXCode 4 でコード カバレッジを生成できないと報告していますが、XCode 4 内からできないだけでなく、コマンド ラインからの簡単なおもちゃのプログラムでもできないことがわかりました。herehereの例に従って、この cov.c ファイルを作成しました。

次に、コード カバレッジを生成するために次のコマンドを使用しました。

残念ながら、obj ディレクトリに cov.gcno ファイルはありません。実際、この後のファイルは cov.c obj/cov.o bin/cov だけです。

さらに、 と入力nm bin/covすると、次のようになります。

これは、libgcov.a がリンクされていなかったことを示唆しています。

と:

まったく同じ結果が得られます。

詳しくは:

  • g++ --version生成: 「i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Apple Inc. ビルド 5658 に基づく) (LLVM ビルド 2336.1.00)」
  • また、gcc (llvm-gcc) を使用してみました。
0 投票する
0 に答える
745 参照

gcc - gcov は標準ライブラリ ブランチを無視しますか?

gcov/lcov を使用して、ソース コードのテスト スイートのレポートを生成しようとしています。標準ライブラリによって発生したブランチを無視するように gcov に指示する方法はありますか。たとえば、文字列ストリーム

また、すべてのソース ファイルで名前空間を使用しています。ファイルの最後に、gcov は 3 つのブランチがあることを報告します。それらの枝はどこから来ていますか?

ご意見をお寄せいただきありがとうございます。

0 投票する
1 に答える
368 参照

gcov - -aオプションを指定するとgcovがフリーズしますか?

gcov を実行すると。問題はありません。ただし、 gcov -a を実行すると。gcov がフリーズしました。出力の最後の数行は次のとおりです。

ファイル '/usr/include/boost/archive/detail/iserializer.hpp' 行数: 55 の 78.18%

ファイル '/usr/include/boost/serialization/extended_type_info_typeid.hpp' 行数: 27 行中 40.74% /usr/include/boost/serialization/extended_type_info_typeid.hpp:'extended_type_info_typeid.hpp.gcov を作成中

なぜそれが起こっているのか知っていますか?「-a」が必要な理由は、lcov を使用するときに、そのオプションを gcov に与えるためです。geninfo をハックしてそのオプションを無視できますが、最終的にはパブリック システムで lcov を実行するので、そうしないことを好みます。

ご意見ありがとうございます。

0 投票する
1 に答える
10793 参照

c++ - CMake と lcov: gcno ファイルが見つかりません

CMake ベースのプロジェクト (複数のターゲットで構成される) でコード カバレッジを取得しようとしています。

まず、次のように gcno ファイルを生成します。

*.gcnoは次の場所に生成されます

次に、*.gcnaファイルを生成するテストを実行します

lcov を再度実行すると、次のようになります。

次のエラーが表示されます。

*.gcnoファイルを*.gcdaが生成されるディレクトリに手動で移動すると、動作するようです。

ご協力いただきありがとうございます!!!

0 投票する
1 に答える
462 参照

c - Cプログラムがperlスクリプトを使用してテストされるテストカバレッジにgcovを使用する方法は?

私は現在gcovに取り組んでおり、gcovを研究するためのポインターが必要です。Perlスクリプトはテストを自動化するために使用されており、テストカバレッジにはgcovを使用する必要があります。gcovのドキュメントとは別に、私が知っておくべき他のことは何ですか?どうすれば続行できますか?

0 投票する
1 に答える
285 参照

ios - プロファイルを作成しようとしたときに、アーキテクチャi386の次のペアが欠落しているGENERIC_RELOC_SECTDIFF

(gcovスタイルのプロファイリングのように)iOS5.0に対してリンクしているSnowLeopard(10.6)上のXcode4.2プロジェクトの単体テストをプロファイリングしようとしています。-fprofile-arcs -ftest-coverageをオンにして、-lprofile_rtに対してリンクしています。LLVM3.0でコンパイルします。

私のターゲットは、単体テストバンドルによってテストされている静的ライブラリです。

すべてが正常にコンパイルされますが、単体テストバンドルのリンクステップで次のようになります。

ld: in Foo/DerivedData/Foo/Build/Intermediates/Foo.build/Debug Profile-iphonesimulator/UnitTests.build/Objects-normal/i386/TestUtilities.o, in section _DATA,_const reloc 0: GENERIC_RELOC_SECTDIFF missing following pair for architecture i386

これが実際のリンクステップです。

setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -bundle -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk "-LFoo/Build/Products/Debug Profile-iphonesimulator" -L/Developer/usr/lib "-FFoo/Build/Products/Debug Profile-iphonesimulator" -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library/Frameworks -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library/Frameworks -filelist "Foo/DerivedData/Foo/Build/Intermediates/Foo.build/Debug Profile-iphonesimulator/UnitTests.build/Objects-normal/i386/UnitTests.LinkFileList" -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -fprofile-arcs -ftest-coverage -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -lFoo -framework Foundation -framework SenTestingKit -lprofile_rt -o "Foo/DerivedData/Foo/Build/Products/Debug Profile-iphonesimulator/UnitTests.octest/UnitTests"

なぜ私がリンクできないのか誰かが何か考えを持っていますか?

0 投票する
1 に答える
2977 参照

c++ - 単純なケースのGcovrブランチカバレッジ

gcovrとgcovをテストするための簡単な例を開発しました。

そして、カバレッジレポート生成のためのスクリプト:

-bオプションを使用して80%のカバレッジを取得し、メインブロックの最後の行を示しています。そのようなシナリオでは100%である必要があるように私には思えますか?

0 投票する
1 に答える
1279 参照

linux - gcov フィルターの結果とファイル

LinuxツールでEclipse indigoを使用しています。そのツールの 1 つが gcov のプラグインです。私はstatis lib(ファイルにドットを付ける)であるプロジェクトと、このlibにリンクしてそのメソッドを呼び出す単体テストである別のプロジェクトを持っています。両方のプロジェクトでコンパイル フラグ -fprofile-arcs -ftest-coverage を追加し、実行可能なプロジェクトでは gcov lib (-lgcov) へのリンクも追加しました。

結果は問題ありませんでしたが、私のものではなく、システムのものと思われる多くの機能を取得しました。ブースト、basic_cstring、およびその他の私のものではないコードのように。

自分のものではないものをすべてフィルタリングするにはどうすればよいですか。私が書いたコードだけに興味があり、strcpy がすべてのパスで実行されることには興味がありません。私はそれを行うことができますか?

前もって感謝します!

0 投票する
1 に答える
209 参照

macos - ユニバーサル バイナリを使用した gcov

ユニバーサル バイナリをビルドするプロジェクトのコード カバレッジ統計を取得しようとしています。ただし、.gcno ファイルは生成されないようです。

例:

しかし、複数のアーチを使わずにコンパイルするとうまくいきます:

なぜこれがファットバイナリで機能しないのか、誰かが光を当てることができますか? それはどこかに文書化されていますか?回避策?