La finestra dei breakpoint ci consente di gestire tutti i breakpoint (non solo quelli dell'applicazione corrente ma tutti i breakpoint del workspace), nel nostro caso solo quelli della applicazione Debugger
.
Ogni breakpoint puo essere disattivato o cancellato da questa finestra, oppure dalla finestra source, cliccando col pulsante destro del mouse sul breakpoint e attivando il menu contestuale, lo stesso menu lo troviamo anche nella finestra Source.
Possiamo anche disattivare un breakpoint togliendo il segno di spunta corrispondente nella finestra Breakpoints.
Una novita del Flash Builder sono i breakpoint condizionali, non presenti nelle versioni precedenti del prodotto: vediamoli in dettaglio.
In corrispondenza del breakpoint sulla riga trace dell'event handler del bottone, premiamo il tasto destro del mouse e selezioniamo Breakpoint Properties
.
Il campo Hit Count consente di attivare il breakpoint solamente quando si sono raggiunte un numero di chiamate uguale al numero inserito in questo campo, sotto abbiamo invece la condizione di abilitazione del breakpoint.
Vediamoli in pratica. Modifichiamo l'handler del click del bottone in questo modo:
protected function button1_clickHandler(event:MouseEvent):void { trace("Hello world debugger"); trace( + new Date().toString()); for(var i:Number=1;i<11;i++) { var risultato:Number = mul(5,i); trace("Il risultato del prodotto di 5 x "+ i +" = " + risultato ); } }
Rimuoviamo tutti i breakpoints premendo il bottone Remove All
nella finestra Breakpoints e inseriamone uno nuovo in corrispondenza della prima riga del ciclo for dove viene dichiarata la variabile risultato
.
Mandiamo in esecuzione il programma: il programma si interromperà, e se continuiamo con Resume
, si interromperà per dieci volte. Se vogliamo, però possiamo interropere il ciclo quando i
vale 5
, abbiamo due scelte :
- impostare Hit Count a 5
- inserire un breakpoint condizionale ponendo come condizione
i==5
È facile capire l'utilità di questo meccanismo. Pensiamo ad esempio di dover analizzare una struttura dati di 1800
elementi e che solamente al 1500°
elemento accada qualcosa di anomalo. Dovremmo rilanciare per 1500 lo step over o dover impostare qualche condizione direttamente nel codice, sporcandolo.