El golf té el seu propi llenguatge: depura'l com un expert en C

Aprèn a depurar programes en Golf utilitzant gdb, establint punts d'interrupció, executant pas a pas i explorant el codi generat en C per a una anàlisi detallada.

jueves, 27 de marzo de 2025 • 2 min de lectura • Equip Q2BSTUDIO

Empresa-Programari-Apps-Intel·ligènciaArtificial

Per incloure informació de depuració a l'executable de la teva aplicació, ja sigui un servidor d'aplicacions o una línia d'ordres, utilitza l'opció --debug. Per exemple, en construir l'aplicació:

gg -q --debug

Això afegirà informació de depuració al codi de la teva aplicació, permetent-ne la depuració amb gdb. Pots depurar el teu programa Golf amb gdb com si fos un programa en C, cosa que facilita la identificació de problemes sense necessitat de treballar amb màquines virtuals o assemblador.

L'ecosistema de depuració per a Golf ja està completament desenvolupat. Pots utilitzar eines com Valgrind o Google ASAN amb programes Golf de la mateixa manera que ho faries amb un programa en C.

Per depurar el propi Golf, aquest ha d'haver estat compilat amb informació de depuració o utilitzar la informació de depuració inclosa si va ser instal·lat des d'un paquet. Aquest tema serà tractat en un altre article.

Exemple de depuració amb Golf:

Crearem una aplicació d'anàlisi anomenada split que dividirà una cadena de consulta en nom i valors:

gg -k split

Crea un fitxer de codi font parse.golf i copia el següent:

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]\n', name, value
    end-loop
end-handler

Aquest programa analitzarà la cadena 'a=1&b=2&c=3' per generar parells de nom/valor, similar a com s'analitzen les cadenes de consulta d'URL.

Compila i enllaça el programa amb:

gg -q --public --debug

El paràmetre -q compila i enllaça el teu projecte. L'opció --public fa que tots els manejadors siguin públics, permetent crides externes. --debug afegeix informació de depuració per a gdb.

Per executar la depuració amb gdb, utilitza:

gg -r --req='/parse'

Això configurarà les variables d'entorn necessàries i executarà el programa split.

Per iniciar gdb:

gdb /var/lib/gg/bld/split/split

Dins de gdb, pots establir un punt d'interrupció al manejador parse i executar cada línia del codi:

(gdb) br parse
(gdb) run
(gdb) next
(gdb) print pair_count

Això et permetrà seguir l'execució del codi línia per línia i inspeccionar variables en temps d'execució.

Si desitges veure el codi C generat per Golf, compila amb:

gg -q --public --c-lines --debug

Això et permetrà analitzar el codi subjacent de Golf en C i comprendre'n millor el funcionament.

A Q2BSTUDIO, experts en desenvolupament i serveis tecnològics, comprenem la importància d'eines avançades de depuració per garantir solucions eficients i optimitzades. El nostre equip està preparat per implementar les millors pràctiques en desenvolupament i depuració, assegurant programari robust i d'alt rendiment.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.