Successivo: , Precedente: , Su: Lista dei comandi di debug   [Contenuti][Indice]


14.3.3 Vedere e modificare dati

I comandi per vedere e modificare variabili all’interno di gawk sono:

display [var | $n]

Aggiunge la variabile var (o il campo $n) alla lista di visualizzazione. Il valore della variabile o del campo è visualizzato ogni volta che il programma s’interrompe. Ogni variabile aggiunta alla lista è identificata da un numero univoco:

gawk> display x
-| 10: x = 1

La riga qui sopra mostra il numero di elemento assegnato, il nome della variabile e il suo valore corrente. Se la variabile di display fa riferimento a un parametro di funzione, è cancellata silenziosamente dalla lista non appena l’esecuzione raggiunge un contesto dove la variabile con quel nome non esiste più. Senza argomenti, display mostra i valori correnti degli elementi della lista.

eval "istruzioni awk"

Valuta istruzioni awk nel contesto del programma in esecuzione. Si può fare qualsiasi cosa che un programma awk farebbe: assegnare valori a variabili, chiamare funzioni, e così via.

NOTA: Non è possibile usare eval per valutare un’espressione che contenga una qualsiasi delle seguenti istruzioni: exit, getline, next, nextfile, o return.

eval param, …
istruzioni awk
end

Questa forma di eval è simile alla precedente, solo che permette di definire “variabili locali” che esistono nel contesto delle istruzioni awk, invece di usare variabili o parametri di funzione già definiti nel programma.

print var1[, var2 …]
p var1[, var2 …]

Stampa i valori di una o più variabili o campi di gawk. I campi devono essere indicizzati usando delle costanti:

gawk> print $3

Questo stampa il terzo campo del record di input (se il campo specificato non esiste, stampa il ‘campo nullo’). Una variabile può essere un elemento di un vettore, avente come indice una stringa di valore costante. Per stampare il contenuto di un vettore, si deve anteporre il simbolo ‘@’ al nome del vettore:

gawk> print @a

L’esempio stampa gli indici e i corrispondenti valori di tutti gli elementi del vettore a.

printf formato [, arg …]

Stampa un testo formattato. Il formato può includere sequenze di protezione, come ‘\n’ (vedi la sezione Sequenze di protezione). Non viene stampato nessun ritorno a capo che non sia stato specificato esplicitamente.

set var=valore

Assegna un valore costante (numero o stringa) a una variabile o a un campo di awk. I valori di stringa devono essere racchiusi tra doppi apici ("").

Si possono impostare anche delle variabili speciali di awk, come FS, NF, NR, e così via.

watch var | $n ["espressione"]
w var | $n ["espressione"]

Aggiunge la variabile var (o il campo $n) alla lista dei punti d’osservazione. Il debugger quindi interrompe il programma ogni volta che il valore della variabile o del campo cambia. A ogni elemento osservato viene assegnato un numero che può essere usato per cancellarlo dalla lista usando il comando unwatch [non-osservare più].

Definendo un punto d’osservazione, si può anche porre una condizione, che è un’espressione awk (racchiusa tra doppi apici) che il debugger valuta ogni volta che viene raggiunto il punto d’osservazione. Se la condizione è vera, il debugger interrompe l’esecuzione e rimane in attesa di un comando. Altrimenti, gawk prosegue nell’esecuzione del programma.

undisplay [n]

Rimuove l’elemento numero n (o tutti gli elementi, se non vi sono argomenti) dalla lista delle visualizzazioni automatiche.

unwatch [n]

Rimuove l’elemento numero n (o tutti gli elementi, se non vi sono argomenti) dalla lista dei punti d’osservazione.


Successivo: , Precedente: , Su: Lista dei comandi di debug   [Contenuti][Indice]