92 votes

Trace de pile complète dans Xcode

Pendant le débogage, est-il possible de voir une trace complète de la pile, la liste des méthodes appelées dans le fil principal ? Ou un moyen de les imprimer dans la fenêtre de commande.

164voto

Alex Iceman Points 1549

Utilisez le bt dans (lldb).

Une fois en pause ou après un crash, tapez simplement bt dans la console de débogage.
Il imprimera la trace complète de la pile.

sample output of bt command

86voto

mihir mehta Points 8182

Vous pouvez imprimer la trace de la pile dans le NSLog en

NSLog(@"Stack trace : %@",[NSThread callStackSymbols]);

Sur un crash, à côté du mot (lldb) vous pouvez taper :

po [NSThread callStackSymbols]

Edita:

Pour une meilleure sortie sur la console de Swift, vous pouvez utiliser la ligne suivante à la place :

Thread.callStackSymbols.forEach{print($0)}

72voto

Gong Pengjun Points 882

Dans Xcode 6, vous pouvez cliquer sur le bouton situé dans le coin inférieur gauche du volet qui affiche la trace complète de la pile. Xcode 6 show full stack trace

17voto

Dans Xcode 5, vous pouvez déplacer le curseur en bas du volet qui affiche la trace de la pile. Il contrôle la quantité de la trace frappée qui est montrée.

Slider controlling the stack trace

4voto

Buntylm Points 6376

Vous pouvez ajouter breakpoint avant que l'exception ne soit levée. Allez d'abord à Breakpoint Navigator (cmd + 6). Dans le coin inférieur gauche, cliquez sur le bouton plus de la souris. OU Vous pouvez utiliser Instruments (/Developer/Applications/Instruments) pour aider à détecter l'utilisation de l'application zombie objects . Référence

Et quand vous ajoutez la révision du point d'arrêt, l'image sera créée par Xcode .

enter image description here

Vous pouvez développer la trace de la pile en utilisant le curseur en bas de l'écran. step over y over pour les journaux ligne par ligne.

merci, j'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X