Depurar en mac con lldb

Con el fin de empezar a conocer cómo funciona lldb y cómo depurar en mac, vamos a crear y compilar nuestro propio código en Swift para posteriormente depurarlo utilizando lldb.

El siguiente artículo forma parte de la colección de artículos acerca de lldb, podrás ver el resto aquí.

Creando nuestro código

Para comenzar creamos nuestro propio fichero hello.swift (mediante Xcode o el terminal), e insertaremos el código mostrado a continuación:

El código qué añadimos importa Swift y expone una función llamada hello sin parámetros de entrada que imprime por consola el texto Hello World! .

Compilando en la consola

Una vez guardado nuestro fichero, abrimos la consola y vamos hasta el directorio donde se encuentra el fichero hello.swift.

A continuación vamos a compilar nuestro código y generamos un fichero binario, para ello ejecutamos desde el terminal, utilizamos el comando swiftc

swiftc -g hello.swif

Ahora tenemos dos nuevos ficheros en el mismo directorio que nuestro código Swift, llamados hello y hello.SYM , este último es importante para poder depurar el código.

Para ejecutar nuestro código y depurar, primero tenemos que darle permisos de ejecución al fichero binario, mediante el comando chmod

chmod +x hello

Este comando permite modificar los permisos que tiene un fichero en nuestro sistema, para ello en nuestro ejemplo estamos añadiendo permisos de ejecución +x sobre el fichero hello previamente generado mediante el compilador de Swift. Más información.

Depurando con lldb

Ejecución

Ahora ya podemos comenzar a depurar en Mac con lldb sobre nuestro binario, para ello utilizamos el siguiente comando

lldb hello

Esto inicia lldb con el fichero binario hello ya cargado esperando a ser ejecutado, para poder ejecutarlo finalmente, ejecutamos sobre lldb

run

Como se muestra en la imagen, el código parece haberse ejecutado correctamente, el depurador muestra información extra acerca de dónde se encuentra el fichero ejecutado y el proceso que se encargó de lanzar el código.

Puntos de ruptura

Ahora añadimos los puntos de ruptura en nuestro código, para ello dentro de lldb ejecutaremos breakpoint este comando detendrá la ejecución del fichero que le indiquemos en la línea especificada.

breakpoint set --file hello.swift --line 4

De nuevo ejecutamos nuestro código con run , la ejecución se detendrá inmediatamente en el nuevo punto de ruptura, que indicamos antes.

blank

Mediante una forma visual, la consola muestra información de las líneas próximas al punto de ruptura además del hilo que está ejecutando dicha línea.

Para continuar la ejecución escribimos continue .

Conclusión

Este podría ser «el peor caso», sin una herramienta de desarrollo como Xcode, Android Studio o VSCode, hubiese que crear/compilar/depurar nuestro código vía terminal.

Una vez hemos sido capaces de dominar este caso, comenzaremos a perder el miedo a tocar más cosas con el lldb sobre nuestro código.

RECUERDA!

ESTE ARTÍCULO FORMA PARTE DE LA COLECCIÓN DE ARTÍCULOS ACERCA DE LLDB, PODRÁS VER EL RESTO AQUÍ.