iOS Recherche d'informations sur un crash


Exemple

Lorsque votre application plante, Xcode entre dans le débogueur et affiche plus d'informations sur le crash:

entrer la description de l'image ici

Les parties les plus importantes sont:

La flèche rouge

La flèche rouge indique quelle ligne de code a planté et pourquoi elle est tombée en panne.

La console du débogueur

De nombreux incidents enregistrent plus d'informations sur la console du débogueur. Il devrait apparaître automatiquement lorsque l'application plante, mais si ce n'est pas le cas, affichez le débogueur en sélectionnant entrer la description de l'image ici bouton dans le coin supérieur droit de Xcode, et affichez la console en cliquant sur le bouton entrer la description de l'image ici bouton dans le coin inférieur droit du débogueur.

La trace de la pile

La trace de la pile répertorie les fonctions du programme avant qu'il n'atteigne le code qui a planté.

Une partie de la trace de la pile est affichée dans le navigateur de débogage à gauche de l'écran et les commandes du débogueur permettent de sélectionner un cadre de pile à afficher dans le débogueur:

entrer la description de l'image ici

Si vous entrez dans la bt commande à la (lldb) invite dans le débogueur et appuyez sur le retour, vous obtiendrez une représentation textuelle de la trace de la pile que vous pouvez copier et coller:

(lldb) bt
* thread #1: tid = 0x3aaec5, 0x00007fff91055f06 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff91055f06 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x000000010008142d libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x00007fff96dc76e7 libsystem_c.dylib`abort + 129
    frame #3: 0x00007fff8973bf81 libc++abi.dylib`abort_message + 257
    frame #4: 0x00007fff89761a47 libc++abi.dylib`default_terminate_handler() + 267
    frame #5: 0x00007fff94f636ae libobjc.A.dylib`_objc_terminate() + 103
    frame #6: 0x00007fff8975f19e libc++abi.dylib`std::__terminate(void (*)()) + 8
    frame #7: 0x00007fff8975ec12 libc++abi.dylib`__cxa_throw + 121
    frame #8: 0x00007fff94f6108c libobjc.A.dylib`objc_exception_throw + 318
    frame #9: 0x00007fff8d067372 CoreFoundation`-[__NSPlaceholderArray initWithObjects:count:] + 290
    frame #10: 0x00007fff8d0eaa1f CoreFoundation`+[NSArray arrayWithObject:] + 47
  * frame #11: 0x0000000100001b54 test`main(argc=1, argv=0x00007fff5fbff808) + 68 at main.m:15
    frame #12: 0x00007fff8bea05ad libdyld.dylib`start + 1
    frame #13: 0x00007fff8bea05ad libdyld.dylib`start + 1