Articles

Xcode Debugging con i punti di interruzione (per principianti)

Erica Millado

Follow

Oct 8, 2016 – 4 min read

Come uno che impara per tutta la vita, si capisce che fare errori è parte del processo di apprendimento. Nella programmazione, queste cose fastidiose sono conosciute come 🐞’s (bugs). Essere un debugger scrupoloso ed efficiente mi renderà un programmatore migliore e alla fine mi permetterà di scrivere codice eccellente nel lungo periodo.

Ho pensato che sarebbe stata una buona idea fare qualche ricerca sul debug a livello di principiante all’interno di Xcode e su come familiarizzare con lo strumento di debug Breakpoint e alcune delle sue capacità.

Quindi, cos’è un breakpoint?

Un breakpoint è uno strumento di debug che ti permette di mettere in pausa l’esecuzione del tuo programma fino ad un certo momento.

Perché dovrei usare un breakpoint?

Creare punti di “pausa” nel tuo codice può aiutarti a indagare il tuo codice per vedere dove si verificano i bug.

Come si creano i punti di interruzione?

Facile. Decidi dove vuoi mettere in pausa l’esecuzione del tuo codice e clicca nella grondaia sinistra per creare un punto di interruzione blu.

Diamo un’occhiata alla favolosità che chiamiamo “Area di Debugging.”

Pulsanti importanti con cui familiarizzare: ACTIVATE BREAKPOINTS, CONTINUE/PAUSE, STEP OVER, STEP INTO, e STEP OUT.

Cosa succede nello screenshot qui sopra?

Ho creato una funzione findSumOfEvens() che somma due numeri interi se ENTRAMBI sono pari. Ho impostato un breakpoint alla linea 25, dopo aver chiamato la mia funzione findSumOfEvens(n1: 2, n2: 4) alla linea 24. La funzione è stata messa in pausa alla riga 25, il che significa che la seconda chiamata di findSumOfEvens(n1: 1, n2: 6) non è stata chiamata ancora.

Ho anche annotato alcuni utili pulsanti / aree di debug di Xcode. Nota:

  • Continua / Pausa = (la scorciatoia da tastiera è ⌃ + ⌘ + Y)

E questi pulsanti di controllo dell’esecuzione:

  • Step Over = (scorciatoia da tastiera è F6)
  • Step Into = (scorciatoia da tastiera è F7)
  • Step Out = (scorciatoia da tastiera è F8)

Ho eseguito il progetto, e la console ha stampato “La somma dei tuoi numeri pari è 6.”

Poi ho cliccato sul pulsante “Step Over” per eseguire la prossima linea di codice (linea 25) – che è dove ho messo il punto di interruzione.

Sopra, potete vedere che ho “scavalcato” la prossima linea di codice e ora la mia console ha stampato “Entrambi i tuoi numeri devono essere pari. Prova di nuovo.”

Come mi sbarazzo di un punto di interruzione?

Fai clic destro sul punto di interruzione per eliminarlo:

Aspetta, cos’è quel messaggio (lldb) nella tua console?

LLDB sta per “low level debugger” che fornisce l’ambiente di debug sottostante per lo sviluppo di applicazioni iOS. Può essere usato per trovare ed eliminare problemi nel vostro codice Swift e Objective-C.

Come sono collegati i punti di interruzione e l’LLDB?

Potete digitare comandi di scelta rapida nell’LLDB per aiutarvi a impostare punti di interruzione in determinate righe di codice, impostare punti di interruzione in molti punti del vostro codice, elencare tutti i vostri punti di interruzione e disabilitare i punti di interruzione.

“breakpoint set – selector viewDidLoad”

Sopra, puoi vedere che puoi impostare più breakpoint inserendo un “selettore” (nome del metodo) in LLDB. Questo è particolarmente utile se hai MOLTI file e non vuoi cliccare in tutti per impostare i breakpoint.

“breakpoint list”

Sopra, puoi anche “elencare” tutti i tuoi breakpoint nel tuo progetto.

Uscita console da “breakpoint list”

Sopra, vedete le informazioni dettagliate della lista stampate nella console, che includono un “hit count”, che indica quante volte abbiamo raggiunto un certo breakpoint.

“breakpoint disable”

Sopra, uso “disable” per disabilitare tutti i miei breakpoint. Se avessi voluto disabilitare solo il mio 2° breakpoint, avrei inserito “breakpoint disable 2.”

“breakpoint set – – file ViewController.swift – – linea 16”

Sopra, ho impostato un punto di interruzione in un punto specifico del mio codice: il mio file ViewController.swift alla linea 16.

Per ricapitolare, i comandi di breakpoint LLDB che ho usato erano:

  • breakpoint set
  • breakpoint list
  • breakpoint disable

Se il mio progetto va in crash, non dovrei semplicemente cliccare stop e terminare l’esecuzione dell’app?

Da quello che ho ricercato, FERMANDO (◾) ️l’app ci si libera di preziose informazioni di debug che Xcode sta cercando di dare a noi (lo sviluppatore) per aiutarci a risolvere il problema. Comincerò ad usare i punti di interruzione e i pulsanti di controllo dell’esecuzione per migliorare il mio codice e vedere dove si verificano gli errori.

Abbraccia i bug come un’opportunità per imparare.

Possa il bug essere sempre a tuo favore.