Articles

Xcode Debuggen met Breakpoints (voor Beginners)

Erica Millado

Follow

8 okt, 2016 – 4 min read

Als een levenslange leerling, wordt begrepen dat het maken van fouten deel uitmaakt van het leerproces. In het programmeren staan deze vervelende dingen bekend als 🐞’s (bugs). Door een grondige en efficiënte debugger te zijn, zal ik een betere programmeur worden en uiteindelijk uitstekende code kunnen schrijven op de lange termijn.

Het leek me een goed idee om wat onderzoek te doen naar debuggen op beginnersniveau binnen Xcode en hoe ik vertrouwd kan raken met de Breakpoint debugging tool en enkele van zijn mogelijkheden.

Zo, wat is een breakpoint?

Een breekpunt is een debugging-tool waarmee u de uitvoering van uw programma tot een bepaald moment kunt pauzeren.

Waarom zou ik een breekpunt gebruiken?

Het maken van “pauze”-punten in uw code kan u helpen uw code te onderzoeken om te zien waar zich bugs voordoen.

Hoe maak ik breakpoints aan?

Eenvoudig. Bepaal waar u de uitvoering van uw code wilt onderbreken en klik in de linkergoot om een blauw onderbrekingspunt te maken.

Laten we eens kijken naar de fabelachtigheid die we het “debugginggebied” noemen.”

Belangrijke knoppen om mee vertrouwd te raken: ACTIVATE BREAKPOINTS, CONTINUE/PAUSE, STEP OVER, STEP INTO, and STEP OUT.

Wat gebeurt er in de bovenstaande schermafbeelding?

Ik heb een functie findSumOfEvens() gemaakt die twee gehele getallen optelt als BEIDE even zijn. Ik heb een breekpunt ingesteld op regel 25, nadat ik mijn functie findSumOfEvens(n1: 2, n2: 4) had aangeroepen op regel 24. De functie werd gepauzeerd op regel 25, wat betekent dat de tweede oproep van findSumOfEvens(n1: 1, n2: 6) nog niet was aangeroepen.

Ik annoteerde ook een paar nuttige Xcode debug-knoppen / gebieden. Opmerking:

  • Doorgaan / Pauzeren = (sneltoets op het toetsenbord is ⌃ + ⌘ + Y)

En deze uitvoeringscontroleknoppen:

  • Step Over = (sneltoets is F6)
  • Step Into = (sneltoets is F7)
  • Step Out = (sneltoets is F8)

Ik heb het project uitgevoerd, en op de console stond “De som van uw even getallen is 6.”

Volgende, ik klikte op de “Step Over” knop om de volgende regel code uit te voeren (regel 25) – dat is waar ik het breekpunt plaatste.

Hierboven ziet u dat ik de volgende coderegel heb “overgestapt” en dat ik hem ook heb uitgevoerd, en nu staat er op de console: “Uw getallen moeten allebei even zijn. Probeer het opnieuw.”

Hoe kom ik van een breekpunt af?

Rechtsklik op het onderbrekingspunt om het te verwijderen:

Wacht, waar gaat die (lldb) melding in uw console over?

LLDB staat voor “low level debugger” en biedt de onderliggende foutopsporingsomgeving voor het ontwikkelen van iOS-toepassingen. Het kan worden gebruikt om problemen in uw Swift- en Objective-C-code op te sporen en te verhelpen.

Hoe staan breekpunten en de LLDB met elkaar in verband?

U kunt snelkoppelingsopdrachten in de LLDB invoeren om u te helpen breekpunten in te stellen op bepaalde coderegels, breekpunten in te stellen op meerdere punten in uw code, een lijst van al uw breekpunten op te stellen en breekpunten uit te schakelen.

“breakpoint set – selector viewDidLoad”

Hierboven ziet u dat u meerdere onderbrekingspunten kunt instellen door een “selector” (methode-naam) in te voeren in de LLDB. Dit is vooral handig als u VEEL bestanden hebt en niet in alle bestanden wilt klikken om breekpunten in te stellen.

“breakpoint list”

Hierboven kunt u ook al uw breekpunten in uw project “oplijsten”.

Console-uitvoer van “breekpuntenlijst”

Hierboven ziet u de gedetailleerde informatie van de lijst die op de console wordt afgedrukt, waaronder een “hit count”, die aangeeft hoe vaak we een bepaald breekpunt hebben bereikt.

“breakpoint disable”

Hierboven gebruik ik “disable” om al mijn breakpoints uit te schakelen. Als ik alleen mijn tweede breekpunt wilde uitschakelen, zou ik “breekpunt uitschakelen 2.”

“breekpunt instellen – – bestand ViewController.swift – – regel 16”

Hierboven heb ik een breekpunt ingesteld op een specifieke locatie in mijn code: mijn bestand ViewController.swift op regel 16.

Om samen te vatten, de LLDB-breekpuntcommando’s die ik gebruikte waren:

  • breekpunt instellen
  • breekpuntlijst
  • breekpunt uitschakelen

Als mijn project vastloopt, moet ik dan niet gewoon op stop klikken en de uitvoering van de app beëindigen?

Van wat ik heb onderzocht, ontdoet het STOPPEN (◾) van de app ons (de ontwikkelaar) van waardevolle foutopsporingsinformatie die Xcode ons probeert te geven om ons te helpen het probleem op te lossen. Ik ga breakpoints en de uitvoeringscontroleknoppen gebruiken om beter door mijn code te stappen en te zien waar de fouten zich voordoen.

Omarm de bugs als een kans om te leren.

Moge de bugs altijd in je voordeel zijn.