Articles

Xcode Debugging mit Breakpoints (für Anfänger)

Erica Millado

Follow

Oct 8, 2016 – 4 min read

Als lebenslang Lernender ist es selbstverständlich, dass Fehler zu machen Teil des Lernprozesses ist. In der Programmierung sind diese lästigen Dinge als 🐞’s (Bugs) bekannt. Ein gründlicher und effizienter Debugger zu sein, wird mich zu einem besseren Programmierer machen und es mir schließlich ermöglichen, auf lange Sicht exzellenten Code zu schreiben.

Ich dachte, es wäre eine gute Idee, einige Nachforschungen über Debugging auf Anfängerniveau in Xcode anzustellen und mich mit dem Debugging-Tool Breakpoint und einigen seiner Möglichkeiten vertraut zu machen.

So, was ist ein Breakpoint?

Ein Haltepunkt ist ein Debugging-Tool, mit dem Sie die Ausführung Ihres Programms bis zu einem bestimmten Zeitpunkt unterbrechen können.

Warum sollte ich einen Haltepunkt verwenden?

Die Erstellung von „Haltepunkten“ in Ihrem Code kann Ihnen helfen, Ihren Code zu untersuchen, um zu sehen, wo Fehler auftreten.

Wie erstelle ich Haltepunkte?

Einfach. Entscheiden Sie, wo Sie die Ausführung Ihres Codes unterbrechen wollen, und klicken Sie in die linke Rinne, um einen blauen Haltepunkt zu erstellen.

Werfen wir einen Blick auf die Fabelhaftigkeit, die wir den „Debugging-Bereich“ nennen.“

Wichtige Schaltflächen, mit denen Sie sich vertraut machen sollten: ACTIVATE BREAKPOINTS, CONTINUE/PAUSE, STEP OVER, STEP INTO und STEP OUT.

Was passiert auf dem Screenshot oben?

Ich habe eine Funktion findSumOfEvens() erstellt, die zwei ganze Zahlen summiert, wenn BEIDE gerade sind. Ich habe einen Haltepunkt in Zeile 25 gesetzt, nachdem ich meine Funktion findSumOfEvens(n1: 2, n2: 4) in Zeile 24 aufgerufen habe. Die Funktion wurde in Zeile 25 angehalten, was bedeutet, dass der zweite Aufruf von findSumOfEvens(n1: 1, n2: 6) noch nicht aufgerufen wurde.

Ich habe auch ein paar nützliche Xcode-Debugging-Schaltflächen / Bereiche kommentiert. Hinweis:

  • Fortsetzen / Pause = (Tastaturkürzel ist ⌃ + ⌘ + Y)

Und diese Ausführungssteuerungsschaltflächen:

  • Step Over = (Tastaturkürzel ist F6)
  • Step Into = (Tastaturkürzel ist F7)
  • Step Out = (Tastaturkürzel ist F8)

Ich habe das Projekt ausgeführt, und die Konsole gab aus: „Die Summe deiner geraden Zahlen ist 6.“

Als Nächstes klickte ich auf die Schaltfläche „Step Over“, um die nächste Codezeile (Zeile 25) auszuführen – an dieser Stelle hatte ich den Haltepunkt gesetzt.

Oben können Sie sehen, dass ich die nächste Codezeile „übersprungen“ und tatsächlich ausgeführt habe und meine Konsole nun ausgibt: „Ihre beiden Zahlen müssen gerade sein. Versuchen Sie es erneut.“

Wie werde ich einen Haltepunkt los?

Klicke mit der rechten Maustaste auf den Haltepunkt, um ihn zu löschen:

Warte mal, was hat es mit dieser (lldb) Meldung in deiner Konsole auf sich?

LLDB steht für „Low Level Debugger“, der die zugrunde liegende Debugging-Umgebung für die Entwicklung von iOS-Anwendungen bereitstellt. Er kann verwendet werden, um Probleme in Ihrem Swift- und Objective-C-Code zu finden und zu beseitigen.

Wie hängen Haltepunkte und die LLDB zusammen?

Sie können in die LLDB Shortcut-Befehle eingeben, die Ihnen helfen, Haltepunkte an bestimmten Codezeilen zu setzen, Haltepunkte an vielen Punkten in Ihrem Code zu setzen, alle Ihre Haltepunkte aufzulisten und Haltepunkte zu deaktivieren.

„breakpoint set – selector viewDidLoad“

Oben sehen Sie, dass Sie mehrere Haltepunkte setzen können, indem Sie einen „Selektor“ (Methodenname) in LLDB eingeben. Dies ist besonders hilfreich, wenn Sie VIELE Dateien haben und nicht in alle klicken wollen, um Haltepunkte zu setzen.

„Haltepunktliste“

Oben können Sie auch alle Haltepunkte in Ihrem Projekt „auflisten“.

Konsolenausgabe von „Haltepunktliste“

Oben sehen Sie die detaillierten Listeninformationen, die auf der Konsole ausgegeben werden, einschließlich einer „Trefferzahl“, die angibt, wie oft ein bestimmter Haltepunkt erreicht wurde.

„breakpoint disable“

Oben benutze ich „disable“, um alle meine Haltepunkte zu deaktivieren. Wenn ich nur meinen 2. Haltepunkt deaktivieren wollte, hätte ich „breakpoint disable 2″ eingegeben.“

„breakpoint set – – file ViewController.swift – – line 16“

Oben habe ich einen Haltepunkt an einer bestimmten Stelle in meinem Code gesetzt: meine ViewController.swift-Datei in Zeile 16.

Zur Erinnerung, die LLDB-Breakpoint-Befehle, die ich verwendet habe, waren:

  • Breakpoint setzen
  • Breakpoint auflisten
  • Breakpoint deaktivieren

Wenn mein Projekt abstürzt, sollte ich dann nicht einfach auf „Stop“ klicken und die Ausführung der App beenden?

Nach dem, was ich recherchiert habe, werden durch das STOPPEN (◾) ️der App wertvolle Debugging-Informationen verloren, die Xcode uns (dem Entwickler) geben will, um das Problem zu beheben. Ich werde anfangen, Haltepunkte und die Schaltflächen zur Ausführungskontrolle zu verwenden, um besser durch meinen Code zu gehen, um zu sehen, wo die Fehler auftreten.

Nehmen Sie die Fehler als eine Gelegenheit an, um zu lernen.

Mögen die Fehler immer zu Ihren Gunsten sein.