utilisation des Crash Logs d'Apple
yoann
Membre
Bonjour tout le monde,
A ma grande surprise je viens de recevoir un mail du programme iPhone dev disant que la MAJ de mon application est refusé à cause d'un crash.
Outre le fait que chez moi le code envoyé ne crash pas j'ai un petit problème à la lecture de la trace qu'ils m'ont fournis :
[tt]Thread 0 Crashed:
0 libSystem.B.dylib 0x31dd594c 0x31d46000 + 588108
1 libSystem.B.dylib 0x31dd593a 0x31d46000 + 588090
2 libSystem.B.dylib 0x31dd592e 0x31d46000 + 588078
3 libSystem.B.dylib 0x31deccf8 0x31d46000 + 683256
4 libstdc++.6.dylib 0x374ef840 0x3748a000 + 415808
5 libobjc.A.dylib 0x300166b8 0x3000c000 + 42680
6 libstdc++.6.dylib 0x374ecf34 0x3748a000 + 405300
7 libstdc++.6.dylib 0x374ecfac 0x3748a000 + 405420
8 libstdc++.6.dylib 0x374ed0d4 0x3748a000 + 405716
9 libobjc.A.dylib 0x300165dc 0x3000c000 + 42460
10 CoreFoundation 0x30224020 0x301fd000 + 159776
11 CoreFoundation 0x30223fc0 0x301fd000 + 159680
12 Foundation 0x30521dea 0x30501000 + 134634
13 Foundation 0x30547bc8 0x30501000 + 289736
14 RapidBlindTest 0x00002890 0x1000 + 6288
15 RapidBlindTest 0x0000228c 0x1000 + 4748
16 UIKit 0x30b0f38c 0x308ed000 + 2237324
17 UIKit 0x309382c4 0x308ed000 + 307908
18 UIKit 0x30936ce8 0x308ed000 + 302312
19 UIKit 0x30936874 0x308ed000 + 301172
20 GraphicsServices 0x32046964 0x32041000 + 22884
21 CoreFoundation 0x30254a70 0x301fd000 + 359024
22 CoreFoundation 0x30254164 0x301fd000 + 356708
23 GraphicsServices 0x3204529c 0x32041000 + 17052
24 UIKit 0x308f0374 0x308ed000 + 13172
25 UIKit 0x308eea8c 0x308ed000 + 6796
26 RapidBlindTest 0x00002090 0x1000 + 4240
27 RapidBlindTest 0x0000202c 0x1000 + 4140[/tt]
Quel est la méthode à adopter pour convertir les adresses de méthode de la 3eme colone en nom de méthode ? ^^
Merci d'avance :-)
A ma grande surprise je viens de recevoir un mail du programme iPhone dev disant que la MAJ de mon application est refusé à cause d'un crash.
Outre le fait que chez moi le code envoyé ne crash pas j'ai un petit problème à la lecture de la trace qu'ils m'ont fournis :
[tt]Thread 0 Crashed:
0 libSystem.B.dylib 0x31dd594c 0x31d46000 + 588108
1 libSystem.B.dylib 0x31dd593a 0x31d46000 + 588090
2 libSystem.B.dylib 0x31dd592e 0x31d46000 + 588078
3 libSystem.B.dylib 0x31deccf8 0x31d46000 + 683256
4 libstdc++.6.dylib 0x374ef840 0x3748a000 + 415808
5 libobjc.A.dylib 0x300166b8 0x3000c000 + 42680
6 libstdc++.6.dylib 0x374ecf34 0x3748a000 + 405300
7 libstdc++.6.dylib 0x374ecfac 0x3748a000 + 405420
8 libstdc++.6.dylib 0x374ed0d4 0x3748a000 + 405716
9 libobjc.A.dylib 0x300165dc 0x3000c000 + 42460
10 CoreFoundation 0x30224020 0x301fd000 + 159776
11 CoreFoundation 0x30223fc0 0x301fd000 + 159680
12 Foundation 0x30521dea 0x30501000 + 134634
13 Foundation 0x30547bc8 0x30501000 + 289736
14 RapidBlindTest 0x00002890 0x1000 + 6288
15 RapidBlindTest 0x0000228c 0x1000 + 4748
16 UIKit 0x30b0f38c 0x308ed000 + 2237324
17 UIKit 0x309382c4 0x308ed000 + 307908
18 UIKit 0x30936ce8 0x308ed000 + 302312
19 UIKit 0x30936874 0x308ed000 + 301172
20 GraphicsServices 0x32046964 0x32041000 + 22884
21 CoreFoundation 0x30254a70 0x301fd000 + 359024
22 CoreFoundation 0x30254164 0x301fd000 + 356708
23 GraphicsServices 0x3204529c 0x32041000 + 17052
24 UIKit 0x308f0374 0x308ed000 + 13172
25 UIKit 0x308eea8c 0x308ed000 + 6796
26 RapidBlindTest 0x00002090 0x1000 + 4240
27 RapidBlindTest 0x0000202c 0x1000 + 4140[/tt]
Quel est la méthode à adopter pour convertir les adresses de méthode de la 3eme colone en nom de méthode ? ^^
Merci d'avance :-)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je n'ai pas la solution, mais je commencerai par creuser du côté de l'outil en ligne de commande "nm" qui permet d'analyser un binaire ou une librairie pour voir les symboles qu'il contient (et leur adresse mémoire relative ou absolue).
Ca te permettra sans doute d'avoir l'adresse des modules (les .dylib, les frameworks inclus, ton code à toi) et l'adresse des points d'entrée (méthodes) à l'intérieur de ces modules.
Maintenant, pour la démarche pas à pas...
http://furbo.org/2008/08/08/symbolicatifination/
Grace à l'outil symbolicatecrash fournis avec les devtools pour l'iPhone et le .dSYM issue de la compilation qu'il faut absolument conserver on peut symboliser le crash log
A noter que par rapport à l'article le binaire a changé de place et se trouve ici : /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash
Je garde ça sous le coude au cas où