Appendice B
Installazione e utilizzo di NetBeans
NetBeans è un IDE (Integrated Development Environment) open source e cross-platform (gira su Windows, Gnu/Linux, Mac OS X e Solaris) che consente di creare applicazioni per il Web, per il desktop e per il mondo mobile. Supporta, oltre al linguaggio Java, anche i linguaggi C/C++, PHP e Groovy.
NetBeans include molte delle caratteristiche che un moderno ambiente di sviluppo deve possedere, tra le quali citiamo:
- il real time code parsing, con cui l’IDE, mentre si digita del codice, effettua un’analisi alla ricerca, per esempio, di eventuali errori sintattici;
- il refactoring, che consente di eseguire operazioni automatizzate, per esempio la rinomina di identificatori, lo spostamento di classi in altri package, l’estrazione di interfacce o superclassi e così via;
- l’intellisense, con cui mentre digitiamo il codice per keyword, identificatori e altro possiamo ottenere una lista delle possibili selezioni la cui scelta ci consente di completarli automaticamente;
- la navigazione verso file, tipi e simboli;
- gli snippet di codice, con cui possiamo inserire in determinati punti del codice sorgente frammenti di codice personalizzati o predefiniti;
- il WYSIWYG (What You See Is What You Get), con cui si può disegnare un’interfaccia utente in modo grafico senza scrivere alcuna riga di codice e vedendone il risultato in tempo reale come apparirebbe se l’applicazione fosse in esecuzione;
- un sistema per il versioning del codice attraverso Git, Mercurial o Subversion;
- un profiler per monitorare aspetti importanti di un’applicazione come l’uso della memoria e della CPU;
- un debugger per effettuare operazioni di ricerca di errori nel codice.
NOTA
Per utilizzarlo come IDE per lo sviluppo in C, è necessario, come requisito preliminare, installare almeno il JRE (Java Runtime Environment) di Java dalla versione 7 in poi.
Installazione dell’IDE in ambiente GNU/Linux
Prima di vedere quali sono i passi essenziali per scaricare e installare NetBeans soffermiamoci un attimo su come scaricare e installare un JRE di Java. Se nel vostro sistema GNU/Linux è già ha installato un JRE o un JDK (Java Development Kit), procedete oltre con la lettura.
- Digitare l’URL
http://java.com/it/download
e fare clic sul pulsante Download gratuito di Java. Fare clic quindi sul link Linux x64 RPM e salvarlo in locale. - Aprire una shell da utente root e spostarsi nella directory
dove è stato scaricato il file .
rpm
del JRE. Eseguire il comandorpm -ivh jre-8u25-linux-x64.rpm
(per noi quello è il nome dei file correntemente scaricato) per procedere con l’installazione dell’ambiente di runtime di Java. - Verificare che l’installazione è andata a buon fine digitando
il comando
java -version
che dovrà ritornare la corrente versione di Java installata.
Per installare NetBeans fare quanto segue.
- Digitare l’URL
https://netbeans.org/downloads
e fare clic sul pulsante Download posto sotto la colonna C/C++. Salvare in locale il file ottenuto (per noinetbeans-8.0.2-cpp-linux.sh
). - Aprire una shell da utente root e spostarsi nella directory
dove è stato scaricato il file
.sh
di NetBeans. Eseguire il comandochmod +x netbeans-8.0.2-cpp-linux.sh && ./netbeans-8.0.2-cpp-linux.sh
per avviare la procedura d’installazione dell’IDE. - Nella finestra NetBeans IDE Installer fare clic sul pulsante Next, accettare la licenza e fare clic ancora sul pulsante Next. Scegliere la directory di installazione o accettare quella presentata, quindi fare clic sul pulsante Next. Infine, fare clic sul pulsante Install. Al termine dell’installazione, fare clic sul pulsante Finish lasciando spuntata, se si desidera, la casella per l’invio di dati di utilizzo anonimi.
- Verificare il funzionamento dell’IDE avviandolo con, per
esempio, il comando
/usr/local/netbeans-8.0.2/bin/netbeans &
.
Installazione dell’IDE in ambiente Windows
Anche in questo caso, prima di elencare i passi necessari per scaricare e installare NetBeans soffermiamoci brevemente su come scaricare e installare un JRE di Java (se nel vostro sistema Windows è già ha installato un JRE o un JDK procedere oltre con la lettura).
- Digitare l’URL
http://java.com/it/download
e fare clic sul pulsante Download gratuito di Java. Fare clic sul pulsante Accettate e avviate il download gratuito e salvare in locale il file indicato (per noijxpiinstall.exe
).
NOTA
Se il vostro sistema è a 64 bit accedete all’URL
http://java.com/it/download/manual.jsp
e poi fate clic sul link Windows Non in linea (64 bit),
che farà scaricare un eseguibile, come per esempio
jre-8u25-windows-x64.exe
.
- Spostarsi nella directory dove è stato scaricato il file
.exe
e avviarlo per procedere con l’installazione del sistema runtime di Java. - Collegarsi all’URL
http://java.com/it/download/installed8.jsp
(se non è stato fatto in automatico), fare clic sul pulsante Verifica della versione Java e seguire i passi descritti per verificare la correttezza dell’installazione di Java.
Per installare NetBeans fare quanto segue.
- Digitare l’URL
https://netbeans.org/downloads
e fare clic sul pulsante Download posto sotto la colonna C/C++. Salvare in locale il file ottenuto (per noinetbeans-8.0.2-cpp-windows.exe
). - Spostarsi nella directory dove è stato scaricato il file
.exe
di NetBeans e avviarlo per procedere con l’installazione dell’IDE. - Nella finestra NetBeans IDE Installer fare clic sul pulsante Next, accettare la licenza e fare clic ancora sul pulsante Next. Scegliere la directory di installazione o accettare quella presentata, quindi fare clic sul pulsante Next. Infine, fare clic sul pulsante Install. Al termine dell’installazione, fare clic sul pulsante Finish lasciando spuntata, se si desidera, la casella per l’invio di dati di utilizzo anonimi.
- Verificare il funzionamento dell’IDE. In Windows 8.1 fare clic sul pulsante Windows e digitare la sequenza di caratteri netbeans... finché nella casella di testo della ricerca non apparirà la scritta NetBeans IDE 8.0.2, fare clic anche su questa per avviarlo.
Creare un progetto per un’applicazione C
Vediamo ora i passi necessari per creare un progetto in NetBeans che consente di sviluppare un’applicazione in C.
- Avviare l’IDE.
- Verificare che l’IDE abbia trovato correttamente tutti gli strumenti di MinGW o di GCC. Fare clic sul menu Tools > Options, quindi sull’etichetta C/C++ nel pannello in alto della finestra di dialogo aperta. Fare clic sul tab Build Tools e verificare che, a sinistra, nell’area Tool Collection sia presente la voce MinGW o GNU. Verificare quindi che nelle caselle di testo dell’area centrale (Base Directory, C Compiler e così via) siano presenti i path completi dei relativi tool (in caso MinGW o GCC non siano stati rilevati dall’IDE, rivedere i loro passi di installazione presentati nell’Appendice A oppure fare clic sul pulsante Restore Defaults per forzare l’IDE a ricercare i tool della relativa suite di compilazione).
- Fare clic sul menu File > New Project e scegliere
nella finestra di dialogo aperta nell’area Categories: la
voce C/C++ e nell’area Projects la voce C/C++
Application. Fare clic sul pulsante Next >. Nelle
caselle di testo dell’area centrale Project Name and
Location scegliere il nome del progetto (per esempio
C_Test) e la locazione del progetto. Assicurarsi che nel
menu a tendina, a fianco della casella di testo al cui interno è
presente la voce
main
, sia attiva la voce C. Infine fare clic sul pulsante Finish. - Nell’area di sinistra dell’IDE dal tab Projects fare
doppio clic sulla voce C_Test e poi sulla voce Source
Files e sul file main.c. A questo punto nell’area
centrale dell’IDE, tab Source, apparirà uno scheletro
minimale della nostra applicazione con l’inclusione degli header
<stdio.h>
e<stdlib.h>
e della funzionemain
. - Digitare nel corpo del
main
printf("Hello from NetBeans.\n");
e poi selezionare il menu Run > Run Project (C_Test) per avviare la compilazione e l’esecuzione del programma relativo. - Verificare che nell’area Output posta in basso nella
finestra dell’IDE sia presente la scritta
Hello from NetBeans.
e sotto qualcosa comeRUN FINISHED.
- Digitare
print("Hello again!\n");
per verificare che l’IDE sia subito in grado di rilevare un errore (real time code parsing); a fianco dell’istruzioneprint
, al posto del numero di riga, apparirà un’icona a forma di lampadina e un cerchio solido rosso con un punto esclamativo, posizionando il mouse sulla quale comparirà un tooltip con la descrizione dell’errore (al di sotto dell’istruzioneprint
si vedrà anche una riga rossa ondulata a indicare l’errore; anche in questo caso sarà possibile far apparire il tooltip di errore posizionando il mouse sopra l’istruzione). - Avviare di nuovo la compilazione ed esecuzione del programma (premere direttamente il tasto F6).
- Questa volta nell’area Output saranno mostrate delle
indicazioni che rileveranno l’errore prima citato (
main.c:18: undefined reference to 'print'
), e il build del programma avrà esito negativo.
NOTA
È possibile solamente compilare un file
.c
usando la voce del menu Run -> Compile
File oppure premere il tasto F9.
Diamo infine due utili indicazioni che consentono,
rispettivamente, di fornire al compilatore delle apposite opzioni
di compilazione e di passare alla funzione main
degli
argomenti da riga di comando quando si avvia il relativo
programma.
- Selezionare il tab Projects e fare clic con il
pulsante destro del mouse sulla voce C_Test per far
apparire il menu contestuale. Selezionare quindi la voce
Properties. Nell’area Categories fare doppio clic
sulla voce Build e poi clic sulla voce C
Compiler. Nell’area centrale fare clic nella cella
Additional Options e lì inserire le opzioni di
compilazione desiderate (per esempio
-std=c11
). Infine fare clic sul pulsante OK. - Selezionare il tab Projects e fare clic con il
pulsante destro del mouse sulla voce C_Test per far
apparire il menu contestuale. Selezionare quindi la voce
Properties. Nell’area Categories fare un clic
sulla voce Run e poi nell’area centrale fare clic nella
cella al cui interno è posta la scritta
"${OUTPUT_PATH}"
e dopo di essa digitare gli argomenti che saranno passati alla funzionemain
(per esempio"${OUTPUT_PATH}" -list -rgb
). Infine fare clic sul pulsante OK.
Utilizzare un progetto per un’applicazione C
Se si dispone di progetti creati con l’IDE NetBeans, come è il caso di quelli forniti con il presente testo, è possibile utilizzarli nel seguente modo.
- Fare clic sul menu File > Open Project e nella
finestra di dialogo che appare localizzare il percorso del progetto
desiderato, selezionarlo (per esempio fare clic su
PrimoProgramma
) e fare clic infine sul pulsante Open Project (le icone delle directory dove si trovano tutti i file di un progetto NetBeans hanno la forma di un parallelepipedo azzurro con al centro un disegno di una ruota dentata gialla). - Nell’area di sinistra dell’IDE dal tab Projects fare
doppio clic sul nome del progetto caricato (per esempio
PrimoProgramma
), quindi lo stesso sulla voce Source Files e infine sul nome del file.c
di interesse che contiene la funzionemain
(per esempioPrimoProgramma.c
). - Compiere quindi i consueti passi già illustrati per editare, compilare e avviare la relativa applicazione C.
Debugging di un’applicazione
NetBeans offre un potente front end visuale per GDB, o per un altro eventuale debugger proprio della corrente toolchain, attraverso il quale è possibile, in modo intuitivo e semplice, compiere le comuni operazioni di avvio della fase di debugging, impostazione di breakpoint, avanzamento riga per riga, attraverso le righe del codice sorgente, cambiamento dei valori delle variabili e così via.
Vediamo di seguito i passi da compiere per effettuare una sessione di debugging, posto che abbiamo caricato il progetto Debugging.
- Nell’area centrale dell’IDE dove è presente il codice sorgente (tab Source) impostare un breakpoint facendo clic con il pulsante sinistro del mouse su una riga di codice (per esempio sulla riga 14).
- Fare clic sul menu Debug > Debug Project (Debug) o premere i tasti Ctrl+F5 per avviare la fase di debugging.
- Avanzare alle righe di codice successive premendo il tasto F7
(Step Into) due volte così da entrare nella funzione
makeSum
(a ogni avanzamento vedrete apparire, alla sinistra dell’area del codice sorgente, una freccia verde che indicherà il punto dove si troverà la prossima riga di codice che sarà eseguita). - Selezionare la variabile
a
nel seguente modo*a
e poi lasciare su tale selezione il puntatore sinistro del mouse in modo che appaia un tooltip che mostri il valore riferito dal puntatore. - Avanzare di un’altra riga di codice premendo il tasto F7 oppure il tasto F8 (Step Over). Solitamente il comportamento di Step Over è il seguente: se incontra una chiamata di funzione, esegue tutte le sue istruzioni senza entrarvi dentro ed eseguire, quindi, step by step, ogni singola istruzione.
- Visualizzare la finestra Variables; fare clic sul menu Window > Debugging > Variables. Questa finestra dovrebbe essere già presente dopo l’attivazione della corrente sessione di debugging.
- Nella riga dove appare il nome della variabile
sum
modificarne il valore; fare clic nella cella della colonna Value, inserire il valore500
e premere Invio. - Uscire subito dalla funzione corrente premendo i tasti Ctrl+F7 (Step Out). In linea generale il comportamento di Step Out è il seguente: finisce l’esecuzione dell’attuale funzione e fa fermare il debugging nel punto dove è stata invocata la funzione.
- Avanzare di altre righe di codice premendo il tasto F8 finché
la freccia verde di indicazione della corrente riga dello step di
debugging non arriva sull’istruzione
return (EXIT_SUCCESS)
; verificare che nella console di output appaia la stringaSomma = 500
. - Terminare la corrente sessione di debugging premendo i tasti Maiusc+F5.
Ricordiamo, infine, che attraverso il menu Window > Debugging è possibile visualizzare, tra le altre e al di sotto dell’area centrale del codice sorgente, le seguenti ulteriori finestre.
- Call Stack: mostra una serie di righe ciascuna contenente informazioni sul nome delle funzioni attive (quelle che sono state invocate ma che non sono ancora ritornate), sui loro parametri e relativi valori. Questa finestra dovrebbe essere già presente dopo l’attivazione della corrente sessione di debugging.
- Breakpoints: mostra informazioni sui breakpoint impostati (nome del file di codice sorgente e numero di riga nel codice sorgente). È possibile da qui anche disattivare o cancellare un determinato breakpoint. Questa finestra dovrebbe essere già presente dopo l’attivazione della corrente sessione di debugging.
- Expression Evaluation: nella casella di testo
Expression è possibile digitare delle espressioni il cui
risultato sarà mostrato nella sovrastante area di output in tempo
reale. Per esempio, se ci troviamo come step di debugging nella
funzione
makeSum
, possiamo digitare*a + 5
per ottenere il valore105
. - Watches: consente di monitorare i cambiamenti di valore di un variabile o di un’espressione durante l’esecuzione del programma.
- Disassembly: mostra il codice assembly della corrente funzione.
La Figura B.1 mostra un’immagine dell’IDE durante l’attivazione della fase di debugging dove sono evidenziate le icone che è possibile utilizzare per attivare le fasi descritte di avvio del debugging, stop del debugging, step over, step into e step out delle istruzioni.
Evidenzia anche le icone usate dall’IDE per mostrare i breakpoint (un quadrato pieno rosso) e il corrente step di esecuzione del debugging (una freccia verde).