BugSense からのクラッシュレポートがあるので、クラッシュのメモリ位置に関する情報がありますが、それらはシンボリックではありません。また、Bug Senseは従来のクラッシュレポートを送信しませんが、バグトレースを提供します。だから私は私のクラッシュの正確な場所を取得するためにアトスを使用しようとしています。 XCode 4でアプリをアーカイブし、そのバージョンを使用してアプリストアに送信したので、dSYMファイルを作成しました。次のコードを実行しました。
atos -Arch armv7 -o MyApp.app.dSYM 0x001057e9
ただし、適切な出力を取得する代わりに、エラーが発生します。
atos cannot load symbols for the file MyApp.app.dSYM for architecture armv7
なぜこれが起こっているのかについての提案はありますか?アプリからデバッグシンボルを削除していません。
アーカイブされたアプリのdSYMファイルからシンボルを適切に取得し、BugSenseクラッシュレポート(またはその問題に関する他のクラッシュレポート)から有用な情報を取得するには:
atos
を使用して参照を検索し、スタックトレースをシンボル化するために必要です。~/Library/Developer/XCode/Archives/YYYY-MM-DD/
です。dSYMs
フォルダに移動しますMyApp.app.dSYM
が表示され、atos
を実行する必要があるファイルだと思うかもしれません。これは誤りです。 実際には別のパッケージです!cd
このパッケージのフォルダー:MyApp.app.dSYM/Contents/Resources/DWARF
に入れると、MyApp
と呼ばれる別のファイルが見つかります。これは実際のdSYMファイルです。atos -Arch armv7 -o MyApp 0x0000000
(またはメモリアドレスが何であれ)を実行してエラーの場所を見つけるか、単にatos -Arch armv7 -o MyApp
を実行してインタラクティブモードに入ります。正しい住所を取得する必要があります。上記のソリューションを使用できますが、正しいメモリアドレスを取得するには、16進数の計算を使用する必要があります。スライド+スタックアドレス-ロードアドレス。