Débogage dans XCode - exécution de code et de points d'arrêt
Je voudrais savoir comment faire pour déboguer les meilleurs dans xcode. Je sais comment faire pour définir un point de rupture, mais idéalement, j'aimerais que le simulateur d'arrêter et de parcourir le code...
Pas à pas à travers les points d'arrêt, mais une étape à travers le code ligne par ligne pour que je puisse voir où il va, quelles sont les méthodes, etc...
Est-ce possible, si oui, comment?
OriginalL'auteur StuartM | 2012-10-02
Vous devez vous connecter pour publier un commentaire.
En bas à gauche de votre fenêtre de code dans Xcode 4, vous pouvez voir le débogage de l'étape de contrôle. Chacune dispose d'un court texte pour expliquer cela. Je vais vous expliquer un peu plus en détail ici. Apprendre à devenir un expert débogueur est l'objet de nombreux manuels scolaires.
Le bouton de lecture du texte alt: Continuer l'exécution du programme. Vous avez probablement trouvé cette déjà. En appuyant avances au prochain point d'arrêt.
Le saut flèche texte alt: Étape sur. Appuyez sur ce bouton à plusieurs reprises pour vous permettre d'avancer dans votre programme au niveau de la portée, tout comme votre programme serait. Il vous permettra d'observer le comportement de votre programme, étape par étape, la méthode actuelle. Lorsque la méthode en cours de finitions, vous mènera à la méthode d'appel d'un niveau dans la pile du programme.
La flèche vers le bas alt texte: Étape dans. En appuyant sur ce bouton, vous suivez la nouvelle méthode dans son champ d'application et de vous permettre de vous afficher le code dans le appelé la méthode si elle a été compilée pour le débogage. Par exemple, en cliquant sur ce sur la ligne de code ci-dessus la fenêtre de débogage de vous mènera à la _generateSources méthode, que vous pourrez ensuite passer à travers avec une Étape au-dessus.
La flèche vers le haut alt texte: sortir. Vous sortez du contexte actuel et dans la méthode d'appel d'un niveau dans la pile du programme. Celle-ci se comporte de manière identique à la finition d'une méthode à l'aide de l'Étape-dessus, l'exécution du programme comme d'habitude, et l'exécution de toutes les lignes de code dans le champ d'application d'origine que vous n'avez pas de débogage à l'aide de l'Étape sur.
Cliquez sur la silhouette avec le fond bleu pour voir la pile d'appel en cours. La pile d'appel aura toujours des progrès tout le chemin à partir de votre champ d'action à la première méthode qui a été appelé pour le lancement de votre programme. Chaque méthode que vous voyez ici a été appelé dans la séquence afin d'atteindre -[HelloWorldLayer init]. Lorsque vous appuyez sur sortir ensuite la ligne en cours d'exécution de code sera de retour à l' -[CCNode nœud], et si vous avez la source, vous pouvez le parcourir.
À gauche sont les variables Locales visible de la portée de la ligne de code en cours d'exécution (ligne 76 dans cette image). Ces variables sont la façon dont vous pouvez réellement utiliser les commandes ci-dessus comme Étape sur. fond et winSize sont des variables locales qui ont été définis dans le présent champ d'application et sont actuellement utilisés. Lorsque la portée est sorti, ils auront disparu. _cmd est un pointeur vers le sélecteur qui est actuellement en cours de invoqué en Objective-C: -[HelloWorldLayer init]. Vous n'aurez pas besoin de cela jusqu'à ce que vous êtes un débogueur avancé. auto est le pointeur vers un objet contenant toutes les ivars qui appartiennent à l'exécution actuelle de la classe, HelloWorldLayer, et objc_super est un pointeur vers la classe parent de HelloWorldLayer.
OriginalL'auteur Thomson Comer
Je voudrais ajouter des raccourcis clavier pour @Thomson Coin de la réponse.
Utiliser " c "pour continuer." s "à l'étape" n "pour la prochaine," f " pour la finition. Je n'aime pas l'exploitation du débogueur avec la souris. Ces icônes sont trop petites et obtenir le pointeur sur eux, c'est une douleur (de temps en temps). J'ai toujours été un clavier gars, et c'est VRAIMENT à l'aise avec le clavier.
Vous devriez aussi essayer d'utiliser po - il imprime les valeurs de la variable avec le type d'avance de vos suggestions. Comme po _varName. Le rend facile de vérifier si une variable est nulle valeur, etc.,
Vous pouvez également modifier l'alias de commande en modifiant
~/.lldbinit
.Voici le tutoriel officiel: http://lldb.llvm.org/tutorial.html. Et un autre tutoriel: http://www.informit.com/articles/article.aspx?p=1829415&seqNum=6. Ce que j'ai souligné ci-dessus sont les plus de base les fonctions de débogage programmeurs effectuent principalement. Il y a plus d'options comme l'exception des points d'arrêt et les programmes de chargement, mais je suis assez sûr qu'ils sont pour un autre jour si vous êtes juste de commencer.
OriginalL'auteur Ravi