Opzioni avanzate per il debug dei bean Java

Durante le operazioni consuete di sviluppo non occorre occuparsi della VM utilizzata da ciascuna istanza dell'editor visuale. Gli utenti avanzati, tuttavia, possono configurare il workbench affinché tutti i messaggi inviati ai file System.out o System.err della VM vengano scritti nel file .log all'interno della directory .metadata dello spazio di lavoro.

La VM (Virtual Machine) utilizzata per eseguire i bean Java non è la stessa VM all'interno della quale viene eseguito il workbench. Viene creata una VM distinta per ciascuna istanza dell'editor visuale. Il percorso delle classi di questa VM è impostato come il percorso di generazione Java in cui sono contenute le voci per il progetto. Se il percorso di generazione Java viene modificato mentre è aperto l'editor visuale, tutti gli editor aperti dovranno essere chiusi e riaperti per poter riflettere il percorso di generazione aggiornato.

Quando viene avviato, al workbench viene assegnata un'opzione -DEBUG che indica il file di testo:

-DEBUG file:/c:/temp/options.txt

Il file di debug contiene voci che vengono lette dall'editor visuale. Se il file contiene la riga indicata di seguito, tutti i messaggi inviati ai file System.out o System.err verranno mostrati nella console:

org.eclipse.jem.proxy/debug/vmtraceout=true

Oltre a vederlo visualizzato nella VM utilizzata dall'editor visuale, è possibile avviare l'output della console in modalità debug ed eseguire il debug remoto. Questa condizione non è ottimizzata e può variare nelle versioni future dell'editor visuale. E' tuttavia documentata, nel caso fosse necessario eseguire il debug dei bean Java in fase di progettazione. Per eseguire il debug remoto, sono necessari due workbench in esecuzione: uno con i bean Java di cui si intende eseguire il debug, e l'altro che è in grado di eseguire il debug remoto basato su socket. Il secondo workbench potrebbe essere eseguito sullo stesso computer o su un computer diverso. Per consentire il debug della VM dell'editor visuale, il file -DEBUG deve contenere la riga:

org.eclipse.jem.proxy/debug/debugvm=true

Ogni volta che l'editor visuale avvia una VM, chiederà se si desidera avviarla in modalità debug. Il messaggio corrispondente viene rappresentato in una finestra di dialogo oppure, se il file -DEBUG contiene la voce org.eclipse.jem.proxy/debug/ioconsole=true, viene scritto nel file System.out.

Se il messaggio viene scritto nel file System.out, verrà chiesto di immettere S o N e di attendere in System.in:

Avviare la VM remota (Project (Test)-VM per HelloFrame.java) in modalità debug? (Immettere S o N):

La finestra di dialogo precedente viene visualizzata quando si apre la classe HelloFrame.java nel progetto Test con l'editor visuale. Se si seleziona Sì oppure si immette S e si preme Invio nella console, la VM viene avviat in modalità sospensione con -Xdebug che utilizza un connettore socket. Verrà allocata una porta libera, quindi verrà comunicato il numero di porta.

Se il messaggio viene scritto nel file System.out, verrà atteso l'input in System.in.

E' ora necessario associare il debugger alla porta numero 7078. Immettere 's' una volta associato il debugger. Il programma proseguirà normalmente anche senza aver associato il debugger. Premere 'n' se è impossibile associare il debugger. Continuerà a persistere un errore, ma questo verrà risolto più velocemente. Immettere 's' o 'n':

Il passaggio successivo consiste nell'associare un debugger remoto alla porta numero 7078. L'istanza del workbench in cui è in esecuzione l'editor visuale viene sospesa durante l'associazione del debugger remoto, pertanto sarà necessario utilizzare un debugger di un'altra applicazione. Se l'altra applicazione è un'altra istanza del workbench, è possibile iniziare il debug remoto utilizzando l'opzione di menu Debug > Debug e creando una nuova configurazione Applicazione Java remota.

Immettere il numero di porta precedentemente indicato in stdout, in questo caso 7078. Se il debugger si trova in un computer diverso, nel campo Host occorrerà immettere l'indirizzo IP del computer nel quale è in esecuzione il workbench che dovrà essere sottoposto a debug. Per avviare il debugger remoto, fare clic su Debug e immettere s nella console stdin del workbench da sottoporre a debug.

Oltre a vedere visualizzate le richieste di debug della VM utilizzata da ciascuna istanza dell'editor visuale, verranno visualizzate anche le richieste di debug del progetto stesso:

Avviare la VM remota (Project (Test)-Beaninfo) in modalità debug? (Immettere S o N):

Questo messaggio riguarda la VM utilizzata per l'introspezione e per l'esecuzione di java.beans.Introspector; tale VM può essere distinta dalla VM dell'editor visuale, perché non è specificato un particolare nome di file di origine Java. La VM viene avviata alla prima richiesta di informazioni relative a un bean Java all'interno di un progetto e resta attiva finché resta aperto il progetto. Effettuando il debug di questo progetto, è possibile avanzare riga per riga e analizzare il codice nelle classi BeanInfo nel momento in cui viene eseguita l'introspezione dei bean Java. L'introspezione viene eseguita una sola volta per ciascun classe di bean Java di ciascun progetto in cui è utilizzata. Il risultato viene memorizzato nella cache per favorire le prestazioni. Se in qualsiasi momento occorrerà svuotare la cache con le informazioni BeanInfo di un progetto, è possibile chiudere e aprire il progetto dal menu a comparsa.

Argomento principale: Test e debug nell'editor visuale

(C) Copyright IBM Corporation 1999, 2004. Tutti i diritti riservati.