Articles

Xcode Debugging with Breakpoints (for Beginners)

Erica Millado

Follow

8 okt, 2016 – 4 min read

Som livslångt lärande är det underförstått att det är en del av lärandeprocessen att göra fel. Inom programmering kallas dessa irriterande saker för 🐞’s (buggar). Att vara en grundlig och effektiv felsökare kommer att göra mig till en bättre programmerare och så småningom göra det möjligt för mig att skriva utmärkt kod i det långa loppet.

Jag tänkte att det skulle vara en bra idé att göra lite forskning om felsökning på nybörjarnivå i Xcode och hur jag kan bekanta mig med felsökningsverktyget Breakpoint och några av dess möjligheter.

Så, vad är en breakpoint?

En brytpunkt är ett felsökningsverktyg som gör att du kan pausa exekveringen av ditt program fram till en viss tidpunkt.

Varför ska jag använda en brytpunkt?

Skapa ”pauspunkter” i din kod kan hjälpa dig att undersöka din kod för att se var fel uppstår.

Hur skapar jag brytpunkter?

Enkla. Bestäm dig för var du vill pausa utförandet av din kod och klicka i den vänstra rännan för att skapa en blå brytpunkt.

Låt oss ta en titt på det fantastiska som vi kallar ”felsökningsområdet”.”

Viktiga knappar att bekanta sig med: AKTIVERA BREAKPOINTS, FORTSÄTT/PAUSE, STEP OVER, STEP INTO och STEP OUT.

Vad händer i skärmdumpen ovan?

Jag har skapat en funktion findSumOfEvens() som summerar två heltal om BÅDA är jämna. Jag satte en brytpunkt på rad 25 efter att ha anropat funktionen findSumOfEvens(n1: 2, n2: 4) på rad 24. Funktionen pausades vid rad 25, vilket innebär att det andra anropet av findSumOfEvens(n1: 1, n2: 6) inte anropades ännu.

Jag antecknade också några användbara Xcode debugging-knappar/områden. Notera:

  • Fortsätt / Pausa = (tangentbordsgenväg är ⌃ + ⌘ + Y)

Och dessa knappar för kontroll av utförandet:

  • Step Over = (tangentbordsgenväg är F6)
  • Step Into = (tangentbordsgenväg är F7)
  • Step Out = (tangentbordsgenväg är F8)

Jag körde projektet och konsolen skrev ut ”Summan av dina jämna tal är 6.”

Nästan klickade jag på knappen ”Step Over” för att köra nästa kodrad (rad 25) – där jag placerade brytpunkten.

Ovanför kan du se att jag ”kliver över” nästa kodrad faktiskt GENOMFÖRDE DEN och nu har min konsol skrivit ut ”Båda dina tal måste vara jämna. Försök igen.”

Hur gör jag mig av med en brytpunkt?

Högerklicka på brytpunkten för att ta bort:

Vänta, vad handlar det där (lldb)-meddelandet i din konsol om?

LLDB står för ”low level debugger” som är den underliggande felsökningsmiljön för utveckling av iOS-applikationer. Den kan användas för att hitta och eliminera problem i din Swift- och Objective-C-kod.

Hur hänger brytpunkter och LLDB ihop?

Du kan skriva in genvägskommandon i LLDB för att hjälpa dig att ställa in brytpunkter på vissa rader i koden, ställa in brytpunkter på många ställen i koden, lista alla dina brytpunkter och inaktivera brytpunkter.

”breakpoint set – selector viewDidLoad”

Ovanför kan du se att du kan ställa in flera brytpunkter genom att ange en ”selector” (metodnamn) i LLDB. Detta är särskilt användbart om du har MÅNGA filer och inte vill klicka i alla för att ställa in brytpunkter.

”breakpoint list”

Ovanför kan du också ”lista” alla dina brytpunkter i ditt projekt.

Konsolutgång från ”breakpoint list”

Ovanför ser du den detaljerade listinformationen som skrivs ut till konsolen, vilket inkluderar ett ”hit count”, vilket anger hur många gånger vi har nått en viss brytpunkt.

”breakpoint disable”

Ovan använder jag ”disable” för att inaktivera alla mina brytpunkter. Om jag ville inaktivera endast min andra brytpunkt skulle jag ha skrivit ”breakpoint disable 2.”

”breakpoint set – – file ViewController.swift – – linje 16”

Ovan har jag satt en brytpunkt på en specifik plats i min kod: min ViewController.swift-fil på linje 16.

För att sammanfatta var de LLDB-brytpunktskommandon jag använde:

  • breakpoint set
  • breakpoint list
  • breakpoint disable

Om mitt projekt kraschar, borde jag då inte bara klicka på stop och avsluta utförandet av appen?

Från vad jag har undersökt, så gör STOPP (◾) ️appen sig av med värdefull felsökningsinformation som Xcode försöker ge till oss (utvecklaren) för att hjälpa oss att åtgärda problemet. Jag kommer att börja använda brytpunkter och knapparna för kontroll av utförandet för att bättre kunna gå igenom min kod för att se var felen uppstår.

Utnyttja felen som en möjlighet för dig att lära dig.

Må felen alltid vara till din fördel.