Opciones avanzadas para la depuración de beans de Java

Durante el desarrollo, no es necesario preocuparse por la máquina virtual que utiliza cada instancia del editor visual. Los usuarios avanzados, no obstante, pueden configurar el entorno de trabajo de forma que los mensajes enviados a System.out o System.err de la máquina virtual se graben en el archivo .log del directorio .metadata del entorno de trabajo.

La máquina virtual (VM) que se utiliza para ejecutar los beans de Java no es la misma en la que se ejecuta el entorno de trabajo. Se crea una VM distinta para cada instancia del editor visual. La vía de acceso de clases de esta VM se establece para que sean las entradas de la vía de construcción Java para el proyecto. Si se cambia la vía de construcción Java mientras el editor visual está abierto, todos los editores abiertos deben cerrarse y volver a abrir para que reflejen la vía de construcción actualizada.

Al iniciar el entorno de trabajo, se puede utilizar la opción -DEBUG que apunte a un archivo de texto:

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

El archivo de depuración contiene entradas que el editor visual lee. Si el archivo contiene la línea siguiente, los mensajes que se envíen a System.out o System.err se muestran en la consola:

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

Además de que la salida de la consola mostrada desde la máquina virtual se utilice en el editor visual, se puede iniciar en modalidad de depuración y realizar una depuración remota. Este escenario no está optimizado y puede cambiar en versiones futuras del editor visual. No obstante, está documentado por si fuera necesario realizar la depuración de los beans de Java en tiempo de diseño. Para llevar a cabo una depuración remota, es necesario tener en ejecución dos entornos de trabajo: uno con los beans de Java que quiere depurar y otro que pueda establecer un socket basado en depuración remota. El segundo entorno de trabajo se puede ejecutar en la misma máquina o en otra distinta. Para habilitar la depuración de la máquina virtual del editor visual, el archivo -DEBUG debe tener la línea siguiente:

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

Cada vez que el editor visual inicia una máquina virtual, preguntará si se quiere iniciar en modalidad de depuración. Este mensaje se escribe en un diálogo o bien, si el archivo -DEBUG contiene la entrada org.eclipse.jem.proxy/debug/ioconsole=true, se escribirá en System.out.

Si el mensaje se escribe en System.out, solicitará una respuesta S o N y esperará en System.in:

¿Quiere iniciar la vm remota (Proyecto (Test)-VM para HelloFrame.java) en modalidad de depuración? (Responda S o N):

El diálogo anterior es para cuando se abre la clase HelloFrame.java del proyecto Test en el editor visual. Si selecciona Sí, o si entra S y pulsa Intro en la consola, se inicia la VM en modalidad de suspensión con -Xdebug utilizando un conector socket. Se asigna un puerto libre. A continuación, hay que indicar el número.

Si el mensaje se graba en System.out, esperará la entrada en System.in.

Hay que conectar el depurador al puerto 7078. Entre 's' cuando el depurador esté conectado. El programa no continuará correctamente si no se ha conectado el depurador. Pulse 'n' si no se puede conectar el depurador. También se producirá error, pero la limpieza será mejor. Entre 's' o 'n':

El paso siguiente es conectar un depurador remoto al puerto número 7078. La instancia del entorno de trabajo en ejecución en el editor visual se suspende mientras se conecta el depurador remoto, por lo que hay que utilizar un depurador desde otra aplicación. Si la otra aplicación es otra instancia del entorno de trabajo, se puede comenzar la depuración remota utilizando la opción de menú Depuración > Depurar y creando una nueva configuración de Aplicación Java remota.

Entre el número de puerto que se indicó anteriormente en stdout, en este caso el 7078. Si el depurador se encuentra en una máquina distinta, en el campo Sistema principal habrá de especificar la dirección IP de la máquina que ejecuta el entorno de trabajo que se está depurando. Para comenzar el depurador remoto, pulse Depurar y entre s en la consola stdin del entorno de trabajo que se está depurando.

Además de la solicitud de depuración de la VM utilizada por cada instancia del editor visual, aparecerán mensajes que solicitan la depuración del propio proyecto:

¿Quiere iniciar la vm remota (Proyecto (Test)-Beaninfo) en modalidad de depuración? (Responda S o N):

Esto es para la VM que se utiliza para la introspección y el java.beans.Introspector en ejecución, y se puede distinguir de la VM del editor visual ya que no especifica un nombre de archivo fuente Java concreto. Esta VM se inició la primera vez que fue necesario un bean info para un bean de Java dentro de un proyecto, y permanece activo el tiempo que el proyecto permanezca abierto. La depuración de este proyecto le permite revisar y analizar cualquier código de las clases BeanInfo a medida que se realiza la introspección de los beans de Java. La introspección se produce una vez para cada clase bean de Java en cada proyecto en que se utilice. El resultado se mantiene en la antememoria para mejorar el rendimiento. Si en un momento dado es necesario borrar la antememoria de información de BeanInfo guardada para un proyecto, puede cerrar y volver a abrir el proyecto desde el menú emergente.

Tema padre: Prueba y depuración en el editor visual

(C) Copyright IBM Corporation 1999, 2004. Reservados todos los derechos.