問題タブ [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.
c++ - -rdynamic フラグを追加した後、gcov は gcda ファイルの生成を停止しました (__gcov_flush() は gdb を介して呼び出されます)
私はC ++でいくつかのサーバーを持っています(ビルドシステムから取得したコマンド):
それはデーモンであり、シグナルで停止していますが、gdbkill $PID
を使用する前にgcov データのダンプを強制するため:
gcov/dumpGcovDataの内容:
リンクが必要であることは知っています-lgcov
が、そのように機能していたので、ビルドシステムで変更しませんでした。フラグを追加した直後に問題が発生しました-rdynamic
(そのフラグなしでは正常に機能しました)。
gcc - gcov で libtool を使用すると、「隠しシンボル `atexit' が DSO によって参照されます」
ビルド スクリプトに GNU Autotools を使用し、リンクに libtool を使用する C++ プロジェクトがあります。最近、gcov を使用してコード カバレッジ インストルメンテーションを追加しました。
.. myCFLAGS
とeach に含まれLDFLAGS
ます。g++-4.2 (自作でインストール) を使用する OS X 10.7.4 では、すべて正常に動作します。
g++ 4.6.3 を使用する Ubuntu 12.04 では、libtool がテストの 1 つをリンクできません。
ubuntu/g++ 4.6 でビルドを修正するにはどうすればよいですか?
cmake - CMake/CTest & gcovr: ファイル名拡張子?
フラグ --coverage を指定して CMake でコンパイルし、ブースト ユニット テスト プログラムを実行すると、拡張子が .cpp.gcda および .cpp.gcno のファイルが作成されます。次に gcovr を実行すると、.gcno ファイルが見つからないと主張します (エラー メッセージ ".gcno:cannot open graph file")。すべての出力ファイルを移動することもできますが、それは非常に厄介でばかげています。
他の人の関連する問題は CTest を使用して解決できますが、私は Jenkins を使用しているため、gcovr に固執し、cobertura xml 出力を使用したいと考えています。
Ps。CMake と gcovr をどのように組み合わせる必要があるのでしょうか。
android - Android/SQLite-ファイルの保存場所
私はAndroidAPIでSQLiteメソッドを実行するAndroidアプリケーションのテストに取り組んでいます。Android Open Source Project(AOSP)でSQLiteコードのコードカバレッジを取得したいのですが、G-Covを実行し、テストの実行時にそのカバレッジ情報を保存するように設定しています。しかし、このカバレッジ情報がどこに保存されているのかわかりません。にあると思いましたがdata/data/package-name
、何も表示されず、Androidエミュレーターからすべてのファイルを正常にプルできませんでした。
このファイルがどこに保存されるか知っている人はいますか?SQLiteと一緒に保存されているのか、エミュレーターに保存されているのかわかりません(SQLiteディレクトリに表示されていないため、ここで想定しています)。
ありがとう。
編集:具体的には、*。gcnoファイルと*.gcdaファイルを探しています。
/lib/*
編集:ファイルエクスプローラー(ADTでEclipse Junoを使用しています)では、近くに何も表示されず、/data/data/package-name/lib
空ですが、エミュレーターの共有ライブラリーにある必要があると考えています。その場所がどこにあるか知っている人はいますか?
c - Waf がオブジェクト ファイルの名前を変更しないようにするにはどうすればよいですか?
私は Waf を使用して C プロジェクトをビルドし、gcov
テスト コード カバレッジを取得しています。ただし、生成されたファイルを検索するときに混乱するソース ファイルからgcc
生成する方法でWaf を呼び出します。foo.c.1.o
foo.c
gcov
幸いなことに、対応するオブジェクト ファイルを指定できるオプションがありますgcov
。-o
それにもかかわらず、これは便利ではなく、実行lcov
は依然として失敗します。したがって、私の質問は次のとおりです。
- Waf がオブジェクト ファイルの名前を変更するのはなぜですか?
- この動作を無効にするにはどうすればよいですか...
- この問題を回避するにはどうすればよいです
gcov
か?lcov
ios5 - 総実行行数 gcov
テストの良し悪しを測定するために、コード カバレッジから始めます。gcov を使用するようにコンパイルされたすべてのプログラムが既にあり、.gcda ファイルと .gcno ファイルもあります。
「gcov --branch-probabilities --no-output mySourceFile.m」のようなものを実行すると、結果として、実行された行数、実行されたブランチ数が得られます...しかし、たった1つのファイルから、同じ測定が必要ですが、私のプロジェクト全体から。とにかくそれをすることはありますか?
ありがとう!
gcc - 最適化せずに gcc で gcov を使用するには?
次のようなテストコードがあります。
コンパイル フラグを追加しました:-fprofile-arcs -ftest-coverage
カバレッジ データを提供します。
テストコードを次のように書きました。
lcov を使用して html レポートを生成したところ、else
ブランチreturn (n - 21) * 2
が実行されたと表示されたので、100% の行カバレッジが得られました。本当じゃない
グーグルで検索したところ、これが原因であることがわかりました--- gcc の最適化により、いくつかの単純なコード行を他の行と組み合わせて削除できますが、フラグを使用しない場合、どのようにカバレッジ データを生成すればよいでしょうか?-fprofile-arcs -ftest-coverage
ところで、私は netbeans と cygwin を使用して単体テストを行っていますgcov
が、makefile やスクリプトを手動で呼び出すのは私にとって良いことではないと思います。
参考までに、私は次のようにlcovを使用しています:
code-coverage - 出力ファイルを生成するlcovの問題
lcovを使用して実行しているいくつかのテストケースのコードカバレッジを取得しようとしています。
しかし、私が実行すると
警告が表示されます
geninfo:警告:.bbファイルでtest.c.gcovのエントリが見つかりません。ファイルをスキップします!
test.cで直接gcovを実行すると、使用率を正常に示すgcov出力を生成できます。
コードカバレッジは初めてです。これを修正するための助けをいただければ幸いです。
gcc - gcc 3.23 に libgcov.a がありません
何らかの理由で、古いバージョンの gcc、gcc2.96、または gcc 3.23 を使用する必要があります。同じものを使用して、コードのコード カバレッジ分析を実行する必要があります。
-lgcov
ただし、オプションでリンクを実行しようとすると、
/usr/bin/ld: -lgcov が見つかりません
libgcov.a
/usr/lib にないことがわかりました。ただし、私の理解では、gcc のインストール中に libgcov が通常自動的にインストールされるということでした。
この問題を解決する方法についての提案は大歓迎です
c - gcov のメモリ不足 / バージョンが一致していませんか?
gcov を起動して実行しようとすると、次のエラーが発生します。
私はclang/profile_rtを使用してgcovが必要とするファイルを生成していますが、それが何か関係があると思います。ただし、他のコンピューターでは動作しているため、何らかの方法で修正できると思います。