6
votes

Où existe-t-il un bon tutoriel sur la manière d'utiliser le débogueur de Xcode correctement?

Sujet dit que tout va vraiment ... y a-t-il un bon tutoriel pour le débogueur de Xcode? Je trouve des dribs et des terrains de choses, mais rien de plus complet ou qui va assez profond. Mon problème en ce moment est que cela ... xxx pré>

... combiné avec ceci ... p> xxx pré>

... et ceci ... p>

EXC_BAD_ACCESS


1 commentaires

Je sais que c'est une vieille question. Mais pour quiconque qui trébuche sur cela, j'ai trouvé Ce rayon Tutoriel Wenderlich absolument excellent.


3 Réponses :


2
votes

L'accident est à l'intérieur du code d'Apple (c'est pourquoi le débogueur ne vous montre pas la source) et la cause est en fait ailleurs - vous avez publié un objet temporaire censé être libéré par la piscine Autoréleuillée. Cela a causé une piscine d'autoraéleuillure à crash.

Vous êtes censé libérer uniquement des objets qui:

  • Vous vous avez conservé avec conserver
  • ont été retournés par init , copier et neufs uniquement (et leurs variantes contenant ces mots)

    Malheureusement, vous ne pouvez pas apprendre celui-ci du débogueur, uniquement de la documentation et de l'expérience ...

    Vous pouvez utiliser analyseur de clang pour trouver de telles erreurs (parfois).


1 commentaires

Si je pouvais vérifier les deux réponses comme l'acceptée, je le ferais, malgré le fait qu'ils n'ont pas répondu à la question de la manière dont j'espérais. Ce n'est pas vraiment important ici, à la fin. Donc, je vais avec celui qui me conduit pour la première fois à la cause de l'accident, même si je pense que je dois recommencer à faire face aux règles de la gestion de la mémoire pour comprendre pourquoi je reçois le crash. Merci aux deux!




2
votes
/xcode4userguide/debugging/debugging.html" rel="nofollow"> Great Tutoriel Sur les caractéristiques du débogueur de Xcode 4.

Concernez votre question pour pourquoi le débogueur passe de la vue de code source à la vue de l'assemblage ... Il va à la vue de l'assemblage lorsque l'exécution du code passe dans des classes qui ne font pas partie de vos fichiers de code source ... E.g. Lorsque vous entrez dans le code qui font partie des cadres que vous utilisez tels que Uikit.


0 commentaires