| prof.
Nunzio Brugaletta |
Sviluppo
in C++: strumenti in ambiente Linux |
Per trovare le istruzioni di un programma che non permettono di ottenere i risultati attesi può essere di aiuto esaminare, istruzione per istruzione, le modifiche apportate nelle variabili: esecuzione step-by-step del programma.

Dal menù Tools si seleziona Compile... e si compila il programma con il flag per l'inclusione delle informazioni per il debugging.
c++ -g -o prova prova.cpp
Dal menù Tools si seleziona Debugger (GDB)... per l'avvio della sessione di debugging.
gdb -–annotate=3 prova
Dal menù File si seleziona Split Window (oppure direttamente si digita la combinazione di tasti C-x 2) in modo da avere l'area di lavoro divisa in due parti.
In una delle due parti in cui è stata divisa la window, si lascia la sessione di debugging, nell'altra (selezionandolo con Mouse-1 sul nome che compare nella mode line oppure dal menù che viene visualizzato con C-Mouse-1) si sceglie la visualizzazione del sorgente.
Nella prima istruzione del programma si inserisce un breakpoint: basta spostarsi sul bordo sinistro della riga che contiene l'istruzione e premere Mouse-1.
Con lo stesso sistema si può eliminare il breakpoint: Mouse-1 sul pallino rosso che indica il breakpoint.
Si preme il pulsante GO (nella barra dei pulsanti, sotto i menù) per avviare l'esecuzione del programma che si blocca prima dell'istruzione su cui è stato impostato il breakpoint.
Si seleziona Gud > GDB-Frames > Locals per aprire un nuovo frame con le variabili locali e i valori in esse contenute. Il frame si aggiorna ad ogni nuovo valore che assume ogni singola variabile.
Selezionando l'icona Next Line, o Step Line se si vuole entrare nel codice di una funzione, si esegue la prossima istruzione. In ogni caso una freccia nera sul bordo sinistro della riga del sorgente, indica l'istruzione che verrà eseguita nel prossimo step.
Se si è sicuri del corretto funzionamento di una parte del codice, si possono impostare diversi breakpoint nei punti critici ed eseguire più velocemente le istruzioni intermedie. Anche l'impostazione di un watchpoint su una variabile (Mouse-1 sul nome della variabile) blocca l'esecuzione del programma ad ogni modifica del valore contenuto nella variabile ma esegue le istruzioni che non la modificano senza interruzioni.
| http://ennebi.solira.org |
ennebi@solira.org |