2012-10-02 13 views
7

Ich würde gerne wissen, wie in xcode am besten debuggen. Ich weiß, wie man einen Unterbrechungspunkt einstellt, aber idealerweise möchte ich, dass der Simulator stoppt und dann den Code durchläuft ...Debugging in XCode - Code und Breakpoints durchlaufen

Nicht Schritt durch Haltepunkte, aber schritt durch den Code Zeile für Zeile, also kann ich sehen, wohin es geht, Welche Methoden werden ausgeführt usw.

Ist das möglich, wenn ja wie?

Antwort

23

Debug control icons in Xcode

Am unteren links des Codes Fenster in Xcode 4 Sie die Debug-Schritt Kontrollen sehen können. Jeder hat einen kurzen Alternativtext, um es zu erklären. Ich werde das hier etwas genauer erklären. Das Lernen eines Experten-Debuggers ist Gegenstand vieler Lehrbücher.

Die Wiedergabetaste alt text: Programmausführung fortsetzen. Das hast du wahrscheinlich schon gefunden. Durch Drücken wird zum nächsten Haltepunkt weitergeschaltet.

Der springende Pfeil alt text: Schritt über. Durch wiederholtes Drücken dieser Taste können Sie Ihr Programm auf der aktuellen Ebene des Oszilloskops genau so durchlaufen, wie Sie es von Ihrem Programm gewohnt sind. Es erlaubt Ihnen, das Verhalten Ihres Programms Schritt für Schritt durch die aktuelle Methode zu beobachten. Wenn die aktuelle Methode beendet ist, gelangen Sie mit der Funktion "Umkehren" zur aufrufenden Methode, die einen Schritt höher ist als der Programmstapel.

Der Pfeil nach unten alt: Schritt in. Wenn Sie auf diese Schaltfläche klicken, wird die neue Methode in ihrem Gültigkeitsbereich angezeigt und Sie können Code in der aufgerufenen Methode anzeigen, wenn er zum Debuggen kompiliert wurde. Wenn Sie beispielsweise auf die aktuelle Codezeile im obigen Debug-Fenster klicken, gelangen Sie zur _generateSources-Methode, die Sie dann mit Step Over durchlaufen können.

Der Pfeil nach oben alt: Herausgehen. Entfernt Sie aus dem aktuellen Kontext und in die aufrufende Methode eine Stufe im Programm-Stack. Dies verhält sich genauso wie das Beenden einer Methode mit Step over, Ausführen des Programms als normal und Ausführen aller Codezeilen im ursprünglichen Bereich, die Sie nicht mit Step over debuggten.

View of call stack

Klicken Sie auf die Silhouette mit dem blauen Hintergrund des aktuellen Call-Stack zu sehen. Der Aufrufstack wird immer den gesamten Weg von Ihrem aktuellen Bereich bis zur ersten Methode durchlaufen, die zum Starten Ihres Programms aufgerufen wurde. Jede Methode, die Sie hier sehen, wurde nacheinander aufgerufen, um - [HelloWorldLayer init] zu erreichen. Wenn Sie drücken, gehen Sie aus, dann wird die aktuelle Zeile des Ausführungscodes zu - [CCNode-Knoten] zurückkehren, und wenn Sie die Quelle dafür haben, können Sie sie durchsuchen.

Auf der linken Seite sind die aktuellen lokalen Variablen aus dem Bereich der aktuell ausgeführten Codezeile sichtbar (Zeile 76 in diesem Bild). Diese Variablen sind, wie Sie wirklich die oben genannten Befehle wie Step über verwenden können. Hintergrund und winSize sind lokale Variablen, die in diesem Bereich definiert wurden und derzeit verwendet werden. Wenn der Bereich verlassen wird, sind sie weg. _cmd ist ein Zeiger auf den Selektor, der gerade in Objective-C aufgerufen wird: - [HelloWorldLayer init]. Sie werden dies nicht benötigen, bis Sie ein fortgeschrittener Debugger sind.self ist der Zeiger auf ein Objekt, das alle Ivars enthält, die zur aktuell ausgeführten Klasse HelloWorldLayer gehören, und objc_super ist ein Zeiger auf die Elternklasse von HelloWorldLayer.

+0

diesem Grund habe ich Xcode luv – Goldname

8

Ich würde @ Thomson Corner's Antwort Tastaturkürzel hinzufügen.

  • Verwenden Sie 'c', um fortzufahren. 's' zum Schritt, 'n' zum nächsten, 'f' zum Ziel. Ich mag es nicht, den Debugger mit der Maus zu bedienen. Diese Symbole sind zu klein und es ist ein Schmerz (manchmal), den Zeiger darauf zu setzen. Ich war schon immer ein Keyboard-Typ und es ist wirklich bequem mit der Tastatur.

  • Sie sollten auch versuchen, po - es druckt Variablenwerte mit Typ Ahead-Vorschläge. Wie po _varName. Erleichtert die Überprüfung, ob eine Variable nullwertig usw. ist.

  • Sie können die Aliasnamen auch ändern, indem Sie ~/.lldbinit ändern.

Hier ist das offizielle Tutorial: http://lldb.llvm.org/tutorial.html. Und noch ein Tutorial: http://www.informit.com/articles/article.aspx?p=1829415&seqNum=6. Was ich oben erwähnt habe, sind die grundlegendsten Debugging-Funktionen, die Programmierer meistens ausführen. Es gibt mehr Optionen wie Ausnahme-Breakpoints und Ladeprogramme, aber ich bin mir ziemlich sicher, dass sie für einen anderen Tag sind, wenn Sie gerade erst anfangen.

+0

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_help-command_shortcuts/MenuCommands/MenuCommands014.html eine ziemlich umfassende Anleitung zur aktuellen XCode gibt Verknüpfungen unterstützt. –

Verwandte Themen