El golf tiene su propio lenguaje: depúralo como un experto en C

Aprende a depurar programas en Golf utilizando gdb, estableciendo puntos de interrupción, ejecutando paso a paso y explorando el código generado en C para un análisis detallado.

27 mar 2025 • 2 min read • Q2BSTUDIO Team

Empresa-Software-Apps-InteligenciaArtificial

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.