Come usare il debugger in Netbeans

Usare il debugger.
(E' il momento di abbandonare System.out.println(".."))

Il Debugger consente di analizzare il flusso del programma, istruzione dopo istruzione, ad esempio analizzando lo stato delle variabili, lo stack delle chiamate e i thread in esecuzione.

Anche nella programmazione su dispositivi mobili il debugger è di certo uno strumento preziosissimo.

Di seguito cercherò di dare delle indicazioni su come usare questo strumento con
Netbeans 5.5.1.

Il punto in cui decidiamo di fermare il codice per analizzare lo stato della jvm (ad esempio le variabili) si chiama Breakpoint.
L'inserimento di un breakpoint avviene cliccando sulla parte grigia che precede l'editor di testo di netbeans:



La linea di codice viene evidenziata!

Per avviare la midlet e analizzarla con il debugger bisogna premere F5.
Non appena il flusso del programma arriva al breakpoint, l'esecuzione si blocca e il colore della linea evidenziata cambia.

In questo istante è possibile conoscere l'attuale valore delle variabili

  • Passandoci di sopra con il mouse
  • Leggendo il tab sottostante "Local Variables" (solo per le variabili locali)
  • Premendo CTRL+F9 e analizzando l'espressione proposta.

Se qualche variabile risulta di particolare interesse durante l'analisi di debugging allora possiamo aggiungere su di essa una Watch.
Per aggiungere una Watch basta selezionare la variabile, anche senza debugging attivo, e premere CTRL+Maius+F7.
Da questo momento durante il debugging tutte le variabili "Watch" vengono raggrupate nel tab "Watches".

Se siamo interessati a conoscere lo stato del sistema all'istruzione di codice successiva è sufficente premere F8, F7, o CTRL+F7

  • F8 indica l'avanzamento all'istruzione successiva.
  • F7 indica l'avanzamento all'istruzione successiva. Se tale istruzione è un metodo l'esecuzione si fermerà alla prima istruzione interna al metodo
  • CTRL+F7 Se siamo entrati all'interno di un metodo con F7, e non siamo più interessati all'analisi interna del metodo e vogliamo ritornare al livello esterno della chiamata questa è l'opzione giusta.

Questi concetti basiliari sono adattabili anche per altri ambienti di sviluppo e linguaggi di programmazione.

Nello sviluppo su Java ME è possibile effettuare il debugging sull'emulatore usando semplicemente il WTK, per quanto riguarda invece il debugging sui dispositivi, bisogna verificare se il produttore mette a disposizione un SDK con relativa funzionalità per il debugging (ad esempio come avviene per SonyEricsson).