Para incluir información de depuración en el ejecutable de tu aplicación, ya sea un servidor de aplicaciones o una línea de comandos, usa la opción --debug. Por ejemplo, al construir la aplicación:
gg -q --debug
Esto añadirá información de depuración en el código de tu aplicación, permitiendo su depuración con gdb. Puedes depurar tu programa Golf con gdb como si fuera un programa en C, lo que facilita la identificación de problemas sin necesidad de trabajar con máquinas virtuales o ensamblador.
El ecosistema de depuración para Golf ya está completamente desarrollado. Puedes utilizar herramientas como Valgrind o Google ASAN con programas Golf de la misma manera que lo harías con un programa en C.
Para depurar el propio Golf, este debe haber sido compilado con información de depuración o utilizar la información de depuración incluida si fue instalado desde un paquete. Este tema será tratado en otro artículo.
Ejemplo de depuración con Golf:
Crearemos una aplicación de análisis llamada split que dividirá una cadena de consulta en nombre y valores:
gg -k split
Crea un archivo de código fuente parse.golf y copia lo siguiente:
begin-handler /parse
silent-header
set-string str = 'a=1&b=2&c=3'
split-string str with '&' to pair count pair_tot
start-loop repeat pair_tot use pair_count
read-split pair_count from pair to item
split-string item with '=' to equal
read-split 1 from equal to name
read-split 2 from equal to value
pf-out 'Name [%s] value [%s]
', name, value
end-loop
end-handler
Este programa analizará la cadena 'a=1&b=2&c=3' para generar pares de nombre/valor, similar a cómo se analizan las cadenas de consulta de URL.
Compila y enlaza el programa con:
gg -q --public --debug
El parámetro -q compila y enlaza tu proyecto. La opción --public hace que todos los manejadores sean públicos, permitiendo llamadas externas. --debug agrega información de depuración para gdb.
Para ejecutar la depuración con gdb, usa:
gg -r --req='/parse'
Esto configurará las variables de entorno necesarias y ejecutará el programa split.
Para iniciar gdb:
gdb /var/lib/gg/bld/split/split
Dentro de gdb, puedes establecer un punto de interrupción en el manejador parse y ejecutar cada línea del código:
(gdb) br parse
(gdb) run
(gdb) next
(gdb) print pair_count
Esto te permitirá seguir la ejecución del código línea por línea e inspeccionar variables en tiempo de ejecución.
Si deseas ver el código C generado por Golf, compila con:
gg -q --public --c-lines --debug
Esto te permitirá analizar el código subyacente de Golf en C y comprender mejor su funcionamiento.
En Q2BSTUDIO, expertos en desarrollo y servicios tecnológicos, comprendemos la importancia de herramientas avanzadas de depuración para garantizar soluciones eficientes y optimizadas. Nuestro equipo está preparado para implementar las mejores prácticas en desarrollo y depuración, asegurando software robusto y de alto rendimiento.