は、Linux上の2つのコマンドです:objcopyとdsymutilの違いは何ですか?
- それは、スタンドアロンのデバッグ情報ファイルを作成し、という意味で
dsymutil <binary> -o <binary>.dSYM
等価マック
に下記へobjcopy --only-keep-debug foo foo.dbg objcopy --add-gnu-debuglink=foo.dbg foo
同等。
- 実行ファイルとデバッグ情報ファイルの間にリンクを作成します。
マックに下記へstrip -S <binary>
objcopy --strip-debug foo
OR
strip -g <binary>
同等:
を除去ためのその後
は、Linuxのコマンドであります
1. dSYMとバイナリ間のMac OSXでのリンクはどのように行われますか? 2. .oファイルもdsymutilに渡す必要があるのでしょうか? –
いいえ、dsymutilはすべての.oファイルの場所を示す実行可能ファイルから "デバッグマップ"を読み取ります。これは、.oファイルを元の場所に配置し、dsymutilを実行するバイナリを削除していないことを意味します。これは、dsymutilを実行するための.oファイルを探す必要がないという利便性のために受け入れられるトレードオフのようです... –
私はちょうど#2に答えたと思います。 #1については。簡単に言えば、バイナリでdsymutilを実行することです。バイナリは.oファイルが(デバッグマップから)どこにあるかを知っているので、バイナリへのパスをdsymutilにするだけで、それ以外はすべて実行します。 dsymutilの動作の詳細については、Xcode 7.0で内部バージョンのdsymutilからllvmソースベースに実装されたバージョンに切り替えました。ですから、llvm/tools/dsymutilのソースを読んで、完全なストーリーを得ることができます。 –