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 visivo. 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 visivo. 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 visivo, 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 visivo. 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/remote/debug/vmtraceout=true

Oltre a vederlo visualizzato nella VM utilizzata dall'editor visivo, è 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 visivo. È 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 visivo, il file -DEBUG deve contenere la riga:

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

Ogni volta che l'editor visivo avvia una VM, chiederà se si desidera avviarla in modalità debug.

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

Il passaggio successivo consiste nell'associare un debugger remoto alla porta numero 7078. 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 visivo, 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 visivo, 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.

Argomenti correlati
Eccezioni dei bean Java
Attività correlate
Esecuzione di una classe visiva, un bean o un'applicazione Java
Configurazione di opzioni per l'esecuzione di un bean o di un'applicazione Java
Debug di un bean o di un'applicazione visiva Java
Test e distribuzione di applet

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