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


14.3.2 Controllo di esecuzione

Dopo che i punti d’interruzione sono pronti, si può iniziare l’esecuzione del programma, osservando il suo comportamento. Ci sono più comandi per controllare l’esecuzione del programma di quelli visti nei precedenti esempi:

commands [n]
silent
end

Imposta una lista di comandi da eseguire subito dopo l’arresto del programma in un punto d’interruzione o di osservazione. n è il numero del punto d’interruzione o di osservazione. Se non si specifica un numero, viene usato l’ultimo numero che è stato specificato. I comandi veri e propri seguono, a cominciare dalla riga successiva, e hanno termine col comando end. Se il comando silent è nella lista, i consueti messaggi sull’arresto del programma a un punto d’interruzione e la riga sorgente non vengono stampati. Qualsiasi comando nella lista che riprende l’esecuzione (p.es., continue) pone fine alla lista (un end implicito), e i comandi successivi vengono ignorati. Per esempio:

gawk> commands
> silent
> printf "Un punto d'interruzione silenzioso; i = %d\n", i
> info locals
> set i = 10
> continue
> end
gawk>
continue [contatore]
c [contatore]

Riprende l’esecuzione del programma. Se si riparte da un punto d’interruzione e viene specificato contatore, il punto d’interruzione in quella posizione viene ignorato per le prossime contatore volte prima di fermarsi nuovamente.

finish

Esegue fino a quando lo stack frame selezionato completa l’esecuzione. Stampa il valore restituito.

next [contatore]
n [contatore]

Continua l’esecuzione alla successiva riga sorgente, saltando le chiamate di funzione. L’argomento contatore controlla il numero di ripetizioni dell’azione, come in step.

nexti [contatore]
ni [contatore]

Esegue una o contatore istruzioni, comprese le chiamate di funzione.

return [valore]

Cancella l’esecuzione di una chiamata di funzione. Se valore (una stringa o un numero) viene specificato, è usato come codice di ritorno della funzione. Se usato in un frame diverso da quello più interno (la funzione correntemente in esecuzione; cioè, il frame numero 0), ignora tutti i frame più interni di quello selezionato, e il chiamante del frame selezionato diventa il frame più interno.

run
r

Avvia/riavvia l’esecuzione del programma. Quando il programma viene riavviato, il debugger mantiene i punti d’interruzione e di osservazione, la cronologia dei comandi, la visualizzazione automatica di variabili, e le opzioni del debugger.

step [contatore]
s [contatore]

Continua l’esecuzione finché il controllo non raggiunge una diversa riga del sorgente nello stack frame corrente, eseguendo ogni funzione chiamata all’interno della riga. Se viene fornito l’argomento contatore, esegue il numero di istruzioni specificate prima di fermarsi, a meno che non s’imbatta in un punto d’interruzione o di osservazione.

stepi [contatore]
si [contatore]

Esegue una o contatore istruzioni, comprese le chiamate di funzione. (Per una spiegazione su cosa s’intende per “istruzione” in gawk, si veda l’output mostrato sotto dump nella Comandi vari del debugger.)

until [[nome-file:]n | funzione]
u [[nome-file:]n | funzione]

Senza argomenti, prosegue l’esecuzione finché non viene raggiunta una riga dopo la riga corrente nello stack frame corrente. Se viene specificato un argomento, prosegue l’esecuzione finché non viene raggiunto il punto specificato, o lo stack frame corrente non termina l’esecuzione.


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