J'ai un rapport de plantage de BugSense , donc j'ai des informations sur l'emplacement de la mémoire des plantages mais ils ne sont pas symbolisés. De plus, Bug Sense n'envoie pas de rapports de plantage traditionnels mais me donne toujours une trace de bogue. J'essaie donc d'utiliser Atos pour obtenir l'emplacement exact de mes plantages. J'ai archivé l'application dans XCode 4 et utilisé cette version pour la soumettre à l'App Store, j'ai donc un fichier dSYM. J'ai exécuté le code suivant:
atos -Arch armv7 -o MyApp.app.dSYM 0x001057e9
Cependant, au lieu d'obtenir la sortie appropriée, je reçois une erreur:
atos cannot load symbols for the file MyApp.app.dSYM for architecture armv7
Avez-vous des suggestions pour expliquer pourquoi cela pourrait se produire? Je ne supprime pas les symboles de débogage de l'application.
Pour obtenir correctement les symboles du fichier dSYM de votre application archivée et obtenir des informations utiles à partir de vos rapports d'erreur BugSense (ou de tout autre rapport d'erreur d'ailleurs):
atos
et symboliser votre trace de pile.~/Library/Developer/XCode/Archives/YYYY-MM-DD/
dSYMs
MyApp.app.dSYM
et vous pourriez penser que c'est le fichier contre lequel je devrais exécuter atos
! Ceci est une erreur. Il s'agit en fait d'un autre package!cd
dans ce package, dans le dossier: MyApp.app.dSYM/Contents/Resources/DWARF
et vous trouverez un autre fichier simplement appelé MyApp
. Il s'agit du fichier dSYM réel.atos -Arch armv7 -o MyApp 0x0000000
(ou quelle que soit l'adresse mémoire) pour trouver l'emplacement de votre erreur, ou simplement atos -Arch armv7 -o MyApp
pour passer en mode interactif.Vous devez obtenir la bonne adresse. Vous pouvez utiliser la solution ci-dessus, mais vous devez utiliser les mathématiques hexadécimales pour obtenir la bonne adresse mémoire. slide + stack address - adresse de chargement.