Articles

Depuración de Xcode con puntos de interrupción (para principiantes)

Erica Millado

Follow

Oct 8, 2016 – 4 min read

Como aprendiz de por vida, se entiende que cometer errores es parte del proceso de aprendizaje. En programación, estas cosas molestas se conocen como 🐞’s (bugs). Ser un depurador minucioso y eficiente me convertirá en un mejor programador y eventualmente me permitirá escribir un código excelente a largo plazo.

Pensé que sería una buena idea investigar un poco sobre la depuración a nivel de principiante dentro de Xcode y cómo familiarizarme con la herramienta de depuración Breakpoint y algunas de sus capacidades.

Entonces, ¿qué es un breakpoint?

Un breakpoint es una herramienta de depuración que te permite pausar la ejecución de tu programa hasta un momento determinado.

¿Por qué debería usar un breakpoint?

Crear puntos de «pausa» en tu código puede ayudarte a investigar tu código para ver dónde se producen los fallos.

¿Cómo creo puntos de ruptura?

Fácil. Decide dónde quieres pausar la ejecución de tu código y haz clic en el canalón de la izquierda para crear un punto de interrupción azul.

Vamos a echar un vistazo a la fabulosa que llamamos «Área de depuración.»

Botones importantes con los que familiarizarse: ACTIVAR PUNTOS DE RUPTURA, CONTINUAR/PAUSA, PASAR POR ENCIMA, ENTRAR Y SALIR.

¿Qué pasa en la captura de pantalla de arriba?

He creado una función findSumOfEvens() que suma dos enteros si AMBOS son pares. Puse un punto de interrupción en la línea 25, después de llamar a mi función findSumOfEvens(n1: 2, n2: 4) en la línea 24. La función estaba en pausa en la línea 25, lo que significa que la segunda llamada de findSumOfEvens(n1: 1, n2: 6) no fue llamada TODAVÍA.

También anoté algunos botones / áreas de depuración de Xcode útiles. Nota:

  • Continuar / Pausa = (atajo de teclado es ⌃ + ⌘ + Y)

Y estos botones de control de ejecución:

  • Paso Arriba = (el atajo de teclado es F6)
  • Paso Adentro = (el atajo de teclado es F7)
  • Paso Afuera = (el atajo de teclado es F8)

Ejecuté el proyecto, y la consola imprimió «La suma de sus números pares es 6.»

A continuación, hice clic en el botón «Step Over» para ejecutar la siguiente línea de código (línea 25) – que es donde puse el punto de interrupción.

Encima, puedes ver que «paso por encima» de la siguiente línea de código realmente la EJECUTÉ y ahora mi consola ha impreso «Ambos números deben ser pares. Inténtalo de nuevo»

¿Cómo me deshago de un punto de interrupción?

Haz clic con el botón derecho del ratón en el punto de interrupción para eliminarlo:

Espera, ¿qué es ese mensaje (lldb) en tu consola?

LLDB significa «depurador de bajo nivel» que proporciona el entorno de depuración subyacente para el desarrollo de aplicaciones iOS. Se puede utilizar para encontrar y eliminar problemas en tu código Swift y Objective-C.

¿Cómo se relacionan los puntos de ruptura y el LLDB?

Puedes escribir comandos de acceso directo en el LLDB para ayudarte a establecer puntos de ruptura en ciertas líneas de código, establecer puntos de ruptura en muchos puntos de tu código, listar todos tus puntos de ruptura y desactivar puntos de ruptura.

«breakpoint set – selector viewDidLoad»

Así, puede ver que puede establecer múltiples puntos de interrupción introduciendo un «selector» (nombre de método) en LLDB. Esto es especialmente útil si tienes MUCHOS archivos y no quieres hacer clic en todos ellos para establecer puntos de interrupción.

«lista de puntos de interrupción»

Encima, también puedes «listar» todos tus puntos de interrupción en tu proyecto.

Salida de la consola de la «lista de puntos de ruptura»

Arriba, se ve la información detallada de la lista impresa en la consola, que incluye un «recuento de aciertos», que indica cuántas veces hemos alcanzado un determinado punto de ruptura.

«breakpoint disable»

Arriba, utilizo «disable» para desactivar todos mis breakpoints. Si quisiera desactivar sólo mi segundo punto de interrupción, habría introducido «breakpoint disable 2.»

«breakpoint set – – file ViewController.swift – – línea 16»

Arriba, establecí un punto de interrupción en un lugar específico de mi código: mi archivo ViewController.swift en la línea 16.

Para recapitular, los comandos de punto de ruptura de LLDB que utilicé fueron:

  • breakpoint set
  • breakpoint list
  • breakpoint disable

Si mi proyecto se bloquea, ¿no debería simplemente hacer clic en stop y terminar la ejecución de la aplicación?

Por lo que he investigado, PARAR (◾️ la app se deshace de la valiosa información de depuración que Xcode está intentando darnos (al desarrollador) para ayudarnos a solucionar el problema. Voy a empezar a utilizar los puntos de interrupción y los botones de control de ejecución para recorrer mejor mi código y ver dónde se producen los errores.

Abraza los fallos como una oportunidad para aprender.

Que los fallos sean siempre a tu favor.