La depuració és una part essencial del desenvolupament de programari. En aquest tema, aprendrem diverses tècniques per identificar i corregir errors en el codi Objective-C. La depuració no només ajuda a trobar i solucionar errors, sinó que també millora la comprensió del funcionament intern del codi.

  1. Introducció a la Depuració

Què és la Depuració?

La depuració és el procés de trobar i corregir errors o problemes en el codi. Aquests errors poden ser de diversos tipus, com ara errors de sintaxi, errors lògics, errors de temps d'execució, etc.

Eines de Depuració

Les eines de depuració són programes que ajuden els desenvolupadors a analitzar i corregir el codi. Algunes de les eines més utilitzades en el desenvolupament d'Objective-C són:

  • Xcode Debugger: L'eina de depuració integrada en Xcode.
  • LLDB: Un depurador de línia de comandes que s'utilitza sovint amb Xcode.
  • Instruments: Una eina d'Apple per analitzar el rendiment i la memòria.

  1. Utilització del Depurador de Xcode

Inici de la Depuració

Per iniciar la depuració en Xcode:

  1. Obre el teu projecte en Xcode.
  2. Selecciona el dispositiu o simulador en el qual vols executar l'aplicació.
  3. Fes clic al botó de "Play" per executar l'aplicació en mode de depuració.

Punts de Trencament (Breakpoints)

Els punts de trencament són una de les eines més potents per a la depuració. Permeten aturar l'execució del programa en un punt específic per analitzar l'estat del programa.

Com Afegir un Punt de Trencament

  1. Obre el fitxer de codi on vols afegir el punt de trencament.
  2. Fes clic a la barra de números de línia al costat de la línia de codi on vols aturar l'execució.

Tipus de Punts de Trencament

  • Punts de Trencament de Codi: Aturen l'execució en una línia específica de codi.
  • Punts de Trencament de Condició: Aturen l'execució només si es compleix una condició específica.
  • Punts de Trencament d'Excepció: Aturen l'execució quan es produeix una excepció.

Inspecció de Variables

Quan l'execució s'atura en un punt de trencament, pots inspeccionar les variables per veure els seus valors actuals. Això es pot fer de diverses maneres:

  • Consola de Depuració: Utilitza la consola per escriure comandes LLDB per inspeccionar variables.
  • Vista de Variables Locals: Mostra les variables locals i els seus valors en la interfície de Xcode.

Comandes LLDB

LLDB és un depurador de línia de comandes que es pot utilitzar dins de Xcode. Algunes comandes útils són:

  • po <variable>: Mostra el valor d'una variable.
  • bt: Mostra la traça de la pila (backtrace).
  • c: Continua l'execució fins al següent punt de trencament.

  1. Depuració de Problemes Comuns

Errors de Memòria

Els errors de memòria, com ara fuites de memòria i accessos a memòria no vàlida, són comuns en Objective-C. Utilitza Instruments per detectar i corregir aquests errors.

Exemple de Fuita de Memòria

- (void)createObject {
    NSObject *obj = [[NSObject alloc] init];
    // No alliberem l'objecte, causant una fuita de memòria
}

Errors de Temps d'Execució

Els errors de temps d'execució es produeixen quan el programa s'executa. Aquests errors poden ser difícils de detectar perquè no es mostren fins que el codi s'executa.

Exemple d'Error de Temps d'Execució

NSArray *array = @[@1, @2, @3];
NSNumber *number = array[3]; // Error: Índex fora de límits

  1. Millors Pràctiques de Depuració

Escriu Codi Clar i Llegible

Un codi clar i ben comentat és més fàcil de depurar. Utilitza noms de variables descriptius i comenta el codi quan sigui necessari.

Utilitza el Control de Versions

El control de versions, com ara Git, permet fer un seguiment dels canvis en el codi i revertir-los si cal. Això és especialment útil quan es produeixen errors després de fer canvis recents.

Proves Unitàries

Les proves unitàries ajuden a detectar errors abans que el codi s'executi en producció. Escriu proves unitàries per a les funcions crítiques del teu codi.

Exercicis Pràctics

Exercici 1: Afegir Punts de Trencament

  1. Crea un projecte nou en Xcode.
  2. Escriu una funció que sumi dos números i retorni el resultat.
  3. Afegeix un punt de trencament a la línia on es retorna el resultat.
  4. Executa el projecte en mode de depuració i inspecciona el valor de les variables.

Solució

- (int)addNumbers:(int)a with:(int)b {
    int result = a + b;
    return result; // Afegeix un punt de trencament aquí
}

Exercici 2: Depurar un Error de Temps d'Execució

  1. Escriu un codi que accedeixi a un element fora dels límits d'un array.
  2. Executa el codi en mode de depuració i utilitza la consola per identificar l'error.

Solució

NSArray *array = @[@1, @2, @3];
NSNumber *number = array[3]; // Error: Índex fora de límits

Conclusió

La depuració és una habilitat essencial per a qualsevol desenvolupador. Utilitzant les tècniques i eines descrites en aquest tema, podràs identificar i corregir errors de manera més eficient. Recorda que la pràctica constant i l'ús de bones pràctiques de programació faran que la depuració sigui una tasca més senzilla i menys frustrant.

© Copyright 2024. Tots els drets reservats