8

iPhone シミュレーターを使用してコードのプロファイルを作成しようとしています。[Generate Test Coverage File and Instrument Program Flow ] を有効にし、リンカー フラグに-lgcovを追加しました。私が読んだすべてによると、セットアップに関して私がする必要があるのはそれだけです。

更新:テスト カバレッジ ファイルの生成-ftest-coverageフラグをトリガーし、計測プログラム フローは-fprofile-arcsフラグをトリガーします。ビルド ログを確認しましたが、コンパイル時に設定されています。

プログラムを実行すると、.gcnoファイルが横に表示されます。.o build/.build/Debug-iphonesimulator/.build/Objects-normal/i386 ディレクトリのコンパイル済みコード。

しかし、シミュレーターでアプリを実行すると、 *.gcdaファイルが表示されません。

私の理解では、これらのファイルには計測器からのデータが含まれています。しかし、コンピューターのどこにもそれらが見つかりません。

私はそれらを作成して*.gcnoファイルと一緒に表示できることを知っています。これは、それらを含む古いゴミ箱のビルド ディレクトリがあるためです。それらを表示して実行を記録するには、どうすればよいかわかりません。

どんな助けでも感謝します。

4

2 に答える 2

1

このリンクに答えがあるかもしれません。基本的に、アプリが適切に終了するまで gcda ファイルは生成されません。次の 2 つの解決策が考えられます。

  • シミュレーターを完全に終了する
  • これを plist に追加します (ただし、リリース ビルドの場合は除きます):

    <key>UIApplicationExitsOnSuspend</key>
    <true/>
    
于 2011-01-17T03:41:09.100 に答える
1

このリンクがあなたにいくつかのアイデアを与えることを願っています. 見つけたリンクを調べる

.gcno ファイルは、ソース ファイルが GCC -ftest-coverage オプションでコンパイルされるときに生成されます。これには、基本的なブロック グラフを再構築し、ソース行番号をブロックに割り当てるための情報が含まれています。

.gcda ファイルは、GCC -fprofile-arcs オプションでビルドされたオブジェクト ファイルを含むプログラムが実行されると生成されます。このオプションでコンパイルされたオブジェクト ファイルごとに、個別の .gcda ファイルが作成されます。これには、アーク遷移カウントといくつかの要約情報が含まれています。

そのため、間違った設定でビルドしている可能性があります。情報はhttp://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Filesに記載されています

于 2011-01-21T10:15:34.533 に答える