37

BugSenseからのクラッシュレポートがあるので、クラッシュのメモリ位置に関する情報がありますが、それらは記号化されていません。また、Bug Senseは従来のクラッシュレポートを送信しませんが、それでもバグトレースを提供します。そのため、クラッシュの正確な場所を取得するためにAtosを使用しようとしています。アプリをXCode4でアーカイブし、そのバージョンを使用してアプリストアに送信したので、dSYMファイルがあります。次のコードを実行しました。

atos -arch armv7 -o MyApp.app.dSYM 0x001057e9

ただし、適切な出力を取得する代わりに、エラーが発生します。

atos cannot load symbols for the file MyApp.app.dSYM for architecture armv7

なぜこれが起こっているのかについての提案はありますか?アプリからデバッグシンボルを削除していません。

4

2 に答える 2

106

アーカイブされたアプリのdSYMファイルからシンボルを適切に取得し、BugSenseクラッシュレポート(またはその他のクラッシュレポート)から有用な情報を取得するには、次のようにします。

  1. スタックトレースをBugSenseからTextEditまたはその他のテキストエディタにコピーします。単にテキストをコピーするのではなく、必ず「クリップボード」アイコンを使用してください。そうしないと、スタックトレースの実際のメモリ位置を取得できません。これは、スタックトレースを使用して参照を検索し、atosシンボル化するために必要です。
  2. XCodeを開き、オーガナイザーに移動します
  3. アーカイブを見つけて右クリックし、ファインダーで開きます。
  4. 通常、アーカイブのディレクトリに移動します~/Library/Developer/XCode/Archives/YYYY-MM-DD/
  5. 特定のアーカイブに移動し、次にdSYMsフォルダーに移動します
  6. あなたはファイルを見るでしょう、MyApp.app.dSYMそしてあなたは考えるかもしれません、これは私が実行すべきファイルですatos!これは正しくありません。実は別のパッケージです! cdこのパッケージ、フォルダに:MyApp.app.dSYM/Contents/Resources/DWARFそしてあなたは単に。と呼ばれる別のファイルを見つけるでしょうMyApp。これは実際のdSYMファイルです。
  7. atos -arch armv7 -o MyApp 0x0000000エラーの場所を見つけるために(またはメモリアドレスが何であれ)実行するか、単にatos -arch armv7 -o MyAppインタラクティブモードに入ります。
于 2011-10-07T21:19:40.770 に答える
4

正しい住所を取得する必要があります。上記の解決策を使用できますが、正しいメモリアドレスを取得するには16進演算を使用する必要があります。スライド+スタックアドレス-ロードアドレス。

于 2013-02-22T16:32:16.040 に答える