2017-05-27 5 views
1

MyFramework私はMyFramework.framework(コンパイルされたフレームワーク)とMyFramework.framework.dSYM(dSYMファイル)を生成します。Xcodeで生成された相対パスDWARFファイル

dwarfdump myframework.framework.dSYM/Contents/Resources/DWARF/MyFrameworkを実行すると、ソースファイルへのすべてのパスが絶対パスであることがわかりました。

これは、私の同僚とこの2つのアーティファクト(ソースコードと共に)を共有することができず、コンパイルされたフレームワークを使用してコードを正しくデバッグできるようにします。より正確には、デバッガを使用してフレームワーク内部にステップインすることはできません。

このため、非常に不便なフレームワークを再コンパイルする必要があります。

これらのパスを編集するためにDWARFを変更する方法、またはDWARFファイルの相対パスを使用するようにXcodeに納得させる方法はありますか?

答えて

0

dSYMに保存されているパスを変更したり、相対パスを作成する方法がわかりませんが、この問題を回避して、任意のマシン上のシンボルでデバッグできるようになります異なる基本パスのソースコード

元のパス(例:/ Users/rob/src/Project)がわかれば、そのライブラリのコードは次のようになります。

settings set target.source-map /Users/rob/src/Project /Users/luka/Sources/Project

は、残念ながら、あなたがこれを実行する必要があります:/ユーザー/ルカ/ソース/プロジェクト、あなたは、デバッガあなたのパスと元のパスのセッションのためにに置き換えられます。このlldbコマンドを発行することができます各デバッグセッションのコマンド。これを行うには、メインにブレークポイントを作成します。このブレークポイントはそのコマンドを実行し、停止せずに実行を続けます。

元のソースパスを見つけるには、あなたが言及したようにdwarfdumpを使用するか、lldbからim loo -v -n MySymbolを持つバイナリにあるシンボルを検索するか、コマンドの他のパラメータ(シンボルのタイプあなたが使用しようとしている)。

関連する問題