Annexos

Ús del depurador del Netbeans

Una eina auxiliar molt valuosa entre les que proporciona el Netbeans és el seu depurador integrat. Aquest permet aturar el programa en qualsevol moment de l’execució i anar executant les instruccions pas per pas, alhora que es pot inspeccionar el valor de totes les variables. D’aquesta manera, és possible inspeccionar com evolucionen el seus valors i localitzar on s’està produint una errada si es detecta que el programa no acaba amb un resultat correcte.

Com a model d’exemple per veure com podem treballar amb el depurador, s’usarà el programa en Java mostrat tot seguit. Creeu un nou projecte anomenat Unitat 2 - Apartat 1 que inclogui aquest codi font en una classe anomenada DivideixISuma.

  1. //Un programa que calcula una divisió i una suma, però pas per pas.
  2. public class DivideixISuma {
  3.  
  4. public static void main(String[] args) {
  5. double dividend = 20.0;
  6. double divisor = 6.0;
  7. double sumarAlFinal = 3.0;
  8. double resultat = 0.0;
  9. //El resultat estarà en una variable que s'anirà modificant.
  10. resultat = dividend/divisor;
  11. //Una expressió que usa la mateixa variable que es modifica!
  12. resultat = resultat + sumarAlFinal;
  13. System.out.println(resultat);
  14. }
  15.  
  16. }

Heu de tenir en compte que el depurador és una eina de complexitat moderada, amb diferents opcions. Aquest annex només pretén proporcionar una guia per fer les primeres passes. La millor manera de veure els detalls del seu funcionament és provant-lo amb diferents programes i experimentant.

Ubicació de "breakpoints"

Abans de poder depurar un programa, cal indicar en alguna de les línies un breakpoint o punt d’interrupció. Quan un programa s’executa sota la supervisió del depurador, aquest va executant les instruccions com faria normalment, fins arribar a una línia de codi on s’hagi ubicat un breakpoint. En aquest instant, l’execució s’atura i s’inicia una sessió de depuració, en la qual podeu controlar l’execució de les instruccions dins del programa.

Si no hi ha cap breakpoint, el programa s’executarà com ho faria normalment, independentment de si heu especificat que el volíeu depurar.

Per afegir o treure un breakpoint, pitgeu amb el botó esquerre del ratolí sobre l’estret marge esquerre de l’editor de codi, on hi ha els números de línia. En fer-ho, apareix un quadre al marge i la línia es ressalta en vermell.

Ubiqueu un breakpoint al codi de manera que quedi tal com mostra la figura.

Figura Ubicació d’un “breakpoint”

Execució del programa sota la supervisió del depurador

Un cop ubicat el breakpoint, ja es pot triar si executem el programa sota la supervisió del depurador o no.

Per iniciar l’execució amb depurador d’una classe, seleccioneu la classe per depurar, pitgeu el botó dret del ratolí i seleccioneu Debug File.

El programa s’executarà fins a la línia on hi ha el breakpoint, moment en què s’atura l’execució i s’obre la sessió de depuració. El Netbeans mostra un entorn com el de la figura.

Figura Pantalla del depurador

Bàsicament, l’aspecte és molt semblant a l’editor. S’hi pot veure el codi font del programa, però amb la particularitat que hi ha una línia ressaltada en verd. Aquest és el lloc on el programa es troba aturat en un moment determinat, encara pendent d’executar-la.

A la part inferior de la pantalla hi ha un apartat anomenat Variables on es mostren totes les variables declarades fins al moment, amb el valor que tenen assignat quan el programa s’ha aturat. La figura mostra un detall ampliat d’aquest apartat.

Figura Visió dels valors de les variables al programa

En aquest cas, fixeu-vos com apareixen totes les variables declarades amb els seus valors inicials. Ara bé, noteu que la variable resultat no apareix, ja que encara no se n’ha executat la declaració. La línia on es declara és tot just la que està pendent d’executar, ja que és on s’ha ubicat el breakpoint.

Si en qualsevol moment voleu veure quina és la sortida generada pel programa, podeu alternar la selecció de l’etiqueta Output amb la d’inspecció de les variables.

Execució pas per pas

Un cop iniciada la sessió de depuració i aturat el programa, podeu executar cada línia pas per pas. En fer-ho, s’executa una línia, el programa actualitza els valors de les variables, si s’escau, i s’atura de nou esperant una nova ordre.

Per fer un pas en l’execució del programa, cal seleccionar l’opció de menú Debug - Step Over, o bé utilitzar la tecla de drecera (F8).

Si ho feu una sola vegada en l’estat que es troba el programa actualment, s’executarà la instrucció que declara i inicialitza la variable resultat. En fer-ho, aquesta apareix a la llista de variables, amb un valor de 0, tal com dicta el codi. Llavors, la línia verda avança una posició, de manera que és la instrucció següent la que ara queda pendent d’executar.

La figura mostra el resultat de fer un nou pas, el que fa un càlcul i s’assigna a la variable resultat. Noteu com el valor d’aquesta variable es veu modificat i, novament, s’avança una sola línia en l’execució del programa.

Figura Execució pas per pas i visió de la modificació de variables

Podeu continuar executant el programa línia per línia fins al final. En acabar el programa, també acaba la sessió de depuració. Si voleu, també podeu finalitzar la sessió de depuració i l’execució del programa en qualsevol moment.

Per aturar l’execució del programa i sortir del depurador, seleccioneu l’opció de menú Debug - Finish Debugger Session.

Si el que voleu és continuar executant el programa des de la línia actual, però encara sota la supervisió del depurador, heu d’usar l’opció de menú Debug - Continue (o la tecla F5). En aquest cas, si troba novament un breakpoint, l’execució es tornarà a aturar. En cas contrari, la resta d’instruccions s’executaran com ho farien normalment.

Anar a la pàgina anterior:
Exercicis d'autoavaluació
Anar a la pàgina següent:
Estructures de selecció