2017-01-26 12 views
0

Windowsでアプリケーションを開発して展開する場合、開発者は各ビルドの一部としてコンパイラによって生成された.pdbファイルをローカルに格納し、aを生成するクラッシュに応答してプログラム呼び出しMiniDumpWriteDumpをローカルに保存することができます。 dmpファイルは、後で開発者に送り返すことができます。その後、開発者は受信した.dmpを適切な.pdbファイルと実行可能ファイルにマッチさせ、クラッシュの死後のデバッグ(つまりスタックトレースの表示など)に使用することができます。MacOS/Xには、WindowsのPDBファイルに類似した分離されたデバッグ情報メカニズムがありますか?

セットアップと管理は苦労しますが、開発者はリリースされたプログラムからすべてのデバッグ情報を取り除くことができますが、引き続きフィールドで発生するクラッシュをデバッグできるという利点があります。これにより、プログラムのインストールサイズがはるかに小さくなり、おそらくリバースエンジニアリングの影響を受けにくくなります。

私の質問は、MacOS/Xには.pdbのような仕組みがありますか?私がMacOS/Xのために見た唯一のオプションは、実行可能ファイルを「ストリップ」することです(小さな実行可能ファイルになりますが、クラッシュした場合はデバッグ情報はほとんどありません)。クラッシュ時に有益なクラッシュレポートが表示されますが、それ以外の場合は必要以上に大きくなります)。

答えて

0

私はdsymutilがあなたが探しているものだと思います。デバッグ情報を含むバイナリの名前に基づいて.dSYMフォルダが作成されます。

私は実際にそれを使ったことはありません。そして、私はリモートコンピュータから必要なスタックトレースの種類がわからない。

+0

スタックトレースは、クラッシュしたスレッドのスタック上のどこで呼び出すかを示します(理想的には、クラッシュの原因となったコードの正確な行)。 –

+1

関連スレッドはhttp://stackoverflow.com/questions/です。 10044697/where-how-does-apples-gcc-store-dwarf-inside-an-executable –