2011-10-06 7 views
29

BugSense'dan bir çökme raporum var, bu nedenle çökmelerin bellek konumu hakkında bilgi aldım, ancak bunlar sembolik değil. Ayrıca Bug Sense, geleneksel kilitlenme raporlarını göndermiyor ama yine de bana bir hata veriyor. Yani çökmelerimin tam yerini almak için Atos kullanmaya çalışıyorum. Uygulamayı XCode 4'te arşivledim ve bu sürümü uygulama mağazasına göndermek için kullandım, bu yüzden bir dSYM dosyanız var. bu neden oluyor olabilir üzereAtos, arşivlenen uygulamanın dSYM'inden sembol alamıyor

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

Herhangi öneriler: Bunun yerine uygun çıktı alma, bir hata alıyorum, ancak

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

: Aşağıdaki kodu çalıştırdığınız? Uygulamadan hata ayıklama sembollerini sıyırmadım.

cevap

86

düzgün arşivlenmiş uygulamanın dSYM dosyasından sembolleri almak ve BugSense kazasında raporlarından yararlı bilgiler almak (veya bu konuda başka bir kilitlenme raporları) için:

  1. Kopya TextEdit veya herhangi içine BugSense gelen yığın izleme diğer metin editörü. Metni kopyalamak yerine "pano" simgesini kullandığınızdan emin olun. Aksi halde, atos kullanarak referanslara bakmak ve yığın izlemenizi sembolize etmek için gereken yığın izlemenin gerçek bellek konumlarını alamazsınız.
  2. XCode'u açın ve Ajanda'ya gidin
  3. Arşivinizi bulun ve sağ tıklayın, bulucuda açmak için gidin.
  4. arşivin dizinine gidin, belirli arşiv genellikle ~/Library/Developer/XCode/Archives/YYYY-MM-DD/
  5. Git ve sonra dSYMs klasör
  6. Dosyayı MyApp.app.dSYM göreceksiniz ve düşünebilir, bu ben atos çalışmalıdır dosya karşısında! Bu yanlış. Bu aslında başka bir paket!cd bu pakete şu klasöre girin: MyApp.app.dSYM/Contents/Resources/DWARF ve sadece MyApp olarak adlandırılan başka bir dosya bulacaksınız. Bu gerçek dSYM dosyasıdır.
  7. Hatanızın konumunu bulmak için atos -arch armv7 -o MyApp 0x0000000 (veya bellek adresi ne olursa olsun) çalıştırın veya etkileşimli moda girmek için yalnızca atos -arch armv7 -o MyApp girin.
+19

Vay, adım 6 burada çok yardımcı oldu. Teşekkürler! – pt2ph8

+1

"-arch armv7" - gerçekten çok önemli, onsuz yanlış veri var – AlexeyVMP

+2

Bir backtrace'im var ama çökme kaydı yok, bu hala işe yarayacak mı? Sadece bana rastgele bir yer veriyor gibi görünüyor. İşte benim backtrace bir örnek hat: MyApp 0x00054b23 MyApp + 301859 – jjxtra

3

Doğru adresi almanız gerekir. Yukarıdaki çözümü kullanabilirsiniz, ancak doğru hafıza adresini almak için hex matematiğini kullanmalısınız. slayt + yığın adresi - yükleme adresi.

+1

Bu cevap, belirtilen değerleri nasıl alacağınızı gösterir: http: // stackoverflow.com/sorular/13574933/ios-çarpışma raporlar-atos-not-işçi beklendiği gibi-/ 13576028 # 13576028 – Kerni