5

Pythonスクリプトから共有ライブラリでgcovを実行する際に問題が発生します。

ライブラリを構築するシナリオは次のとおりです。

  1. ファイルのセット(file1.c、file2.c)を静的にリンクされたlib(.a)にコンパイルします。私はこれを行うためにarユーティリティを使用し、すべてのファイルは次のオプションを使用してコンパイルされます。

    -static -fprofile-arcs -ftest-coverage -coverage

  2. 他のいくつかのファイル(たとえばfile3.c)と上記で指定した.aファイルを使用して.soファイルを作成します。コンパイルとリンクの際に、同じオプションを再度使用します。

  3. .soをPythonスクリプトにロードして、実行します。

問題:生成されるカバレッジファイルには、file3.cのコードカバレッジのみが含まれています。.aライブラリの一部であるファイルは、カバレッジレポートに表示されません。

ここに.aをリンクしているときにオプションがありませんか?

4

2 に答える 2

1

問題を見つけました。レポートを生成するためにすべての.gcdaファイルを取得していませんでした。-object-directoryオプションを使用して、すべてのgcdaファイルを検索します。

GCOVのマニュアルページ

于 2012-11-28T07:36:08.413 に答える
-1

cコードでPythonラッパーを提供していることを確認する必要があります。

これは、 BOOST.PythonまたはSWIGを使用して実現できます。

于 2012-11-28T05:37:52.783 に答える