2011-07-18 4 views

答えて

3

XCodeはまだNDAの下にあると聞いていますが、私はLLVMとClangについて話すことができます。 LLVMはコンパイル時に.gcnoファイルを出力する方法を、プログラムが実行されるときに.gcdaファイルを(libprofile_rtとリンクして)実行する方法を知っています。 LLVMの内部では、これはデバッグ情報のデータを使用してコードをファイルおよび行番号情報に関連付けます。

これを使用するには、SVN HEADのLLVMとClangが必要です。そのclangは、gccがカバレッジで構築するのと同じフラグをサポートする必要があります。 --coverageが実行するか、-ftest-covergeと-fprofile-arcsを個別に使用できます。リンクの場合、GCCはclang + llvmに対して間違っていた-lgcovをサポートしました。ライブラリのLLVMバージョンはlibgcovではなく、profile_rtという名前になっています。

+3

iOSプロジェクトでその作業を行う方法を説明できますか?私はllvm/clangをソースからビルドしようとしましたが、x64バイナリを取得しました。 i386サポート(iPhone/iPadシミュレータ用)を入手するには、どのようなフラグを./configureに渡すのですか?既に提供されているlibのprofile_rt.dylibとのリンクも、ライブラリがロードされていないとクラッシュします。@executable_path /../ lib/libprofile_rt.dylib – Cliff

+0

@Cliff –

+0

@ダンはい/いいえ。はい、私はそれが1ヶ月間働いた後、Appleはそれを壊したアップデートをリリースしました。私はS/Oに多くの疑問を持って戻ってきて、それを再び働かせるようになり、アップルはツールを更新し、再びそれを破った。私がAndroidで動かされたとき、正直言って私がどこで中断したのか忘れてしまった。 – Cliff

関連する問題