Successivo: Sommario sul debug, Precedente: Supporto per Readline, Su: Debugger [Contenuti][Indice]
Si spera che il lettore trovi il debugger di gawk
utile e piacevole
da usare, ma come accade per ogni programma, specialmente nelle sue prime
versioni, ha ancora delle limitazioni. Quelle di cui è bene essere al corrente sono:
gawk
),
ci si renderà conto che gran parte della manipolaziona interna di dati
in gawk
, così come in molti interpreti, è fatta su di una pila.
Op_push
, Op_pop
, e simili sono il pane quotidiano di
gran parte del codice di gawk
.
Sfortunatamente, al momento, il debugger di gawk
non consente
di esaminare i contenuti della pila.
Cioè, i risultati intermedi della valutazione delle espressioni sono sulla
pila, ma non è possibile stamparli. Invece, possono essere stampate solo
quelle variabili che sono state definite nel programma. Naturalmente, un
espediente per cercare di rimediare è di usare più variabili esplicite in
fase di debug e
poi cambiarle di nuovo per ottenere un codice forse più difficile da
comprendere, ma più ottimizzato.
awk
, ci si aspetta che chi legge conosca il significato di
/[^[:alnum:][:blank:]]/
.
gawk
è progettato per essere usato eseguendo un
programma (con tutti i suoi parametri) dalla riga di comando, come descritto
in
Come avviare il debugger. Non c’è alcun modo (al momento) di modificare
o di “entrare dentro” l’esecuzione di un programma.
Questo sembra ragionevole per un linguaggio che è usato principalmente per
eseguire programmi piccoli e che non richiedono molto tempo di esecuzione.
gawk
accetta solo codice sorgente fornito con
l’opzione -f.
Se si sta usando uno script di shell che contiene un programma
awk
che fa parte della riga di comando, e si deve usare il debugger,
si può scrivere lo script in un file temporaneo, e quindi usarlo come
programma, tramite l’opzione -f. Ciò si potrebbe fare nel modo
seguente:
cat << \EOF > /tmp/script.$$ … Qui c’è il programma da eseguire EOF gawk -D -f /tmp/script.$$ rm /tmp/script.$$
Successivo: Sommario sul debug, Precedente: Supporto per Readline, Su: Debugger [Contenuti][Indice]