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.
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Í.