utilisation des Crash Logs d'Apple

yoannyoann 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 :-)

Réponses

  • AliGatorAliGator Membre, Modérateur
    00:55 modifié #2
    Très bonne question ça...

    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...
  • yoannyoann Membre
    00:55 modifié #3
    Le coup de fils à  un ami aura marché pour cette question, la solution se trouve ici :

    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
  • AliGatorAliGator Membre, Modérateur
    00:55 modifié #4
    Super, merci pour l'info, ça peut toujours servir
    Je garde ça sous le coude au cas où :)
Connectez-vous ou Inscrivez-vous pour répondre.