Você está na página 1de 3

Depurar Aunque Java no es tan difcil de depurar como otros lenguajes de programacin, tambin es perfectamente posible que surjan

complejos problemas de ejecucin. Eclipse da apoyo completo a la tare de depuracin a travs de su perspectiva "Debug" ("Window > Open Perspective > Debug" o seleccionando el icono del "bicho" en el margen izquierdo). Dentro de esta perspectiva de depuracin, haciendo clic en el margen izquierdo del editor de cdigo aparecer un men contextual. Seleccionando "Add/Remove Breakpoint" aadir o quitar un punto de ruptura, mientras que "Toggle Breakpoint" cambiar el estado de activacin del punto de ruptura. Los puntos de ruptura marcan lneas en que la ejecucin del programa se detendr de manera que sea posible comprobar el valor de las variables en ese instante, identificando as posibles errores. Haciendo clic derecho en un punto de ruptura y seleccionando "Breakpoint Properties..." permitir especificar opciones avanzadas del punto de ruptura. "Hit Count" especifica que la ejecucin del programa se detendr cuando se pase por el punto de ruptura el nmero especificado de veces. Las condiciones de activiacin detendrn la ejecucin cuando la condicin sea cierta o bien cuando el valor de la condicin cambie. Especificar una variable como una condicin de activacin y seleccionar "suspend when value of condition changes" es una forma de "detener la ejecucin en el punto de ruptura cuando dicha variable sea modificada". Las excepciones son uno de los sntomas ms evidentes de errores de ejecucin. Los "Java Exception Breakpoints" detienen la ejecucin cuando salta una excepcin del tipo seleccionado. Estos puntos de ruptura se activan haciendo clic en el icono "J!" de la vista de "Breakpoints" o desde el men principal "Run". La ejecucin puede detenerse cuando la excepcin sea capturada, no capturada o ambas. Aadir siempre los puntos de ruptura de excepciones Java de "ArrayIndexOutOfBoundsException" (lanzada cuando el ndice de una matriz se sale de sus dimensiones) y "NullPointerException" (lanzada cuando se intenta acceder a una referencia que apunta a null) es una prctica de depuracin recomendada. Si se desea que el programa se detenga en los puntos de ruptura definidos deber ser ejecutado en modo depuracin ("Run > Debug..."). Tras detenerse en un punto de ruptura la ejecucin del programa puede continuar de diversas maneras. Haciendo clic derecho en el editor de cdigo dentro de la perspectiva de depuracin aparecer un men contextual con estas opciones. "Run to line" reanuda la ejecucin del programa hasta que se alcanza la lnea en que est el cursor. "Step into selection" continuar la ejecucin dentro del mtodo seleccionado siempre y cuando el cdigo fuente del mtodo est disponible. La ejecucin tambin puede reanudarse mediante un clic derecho en la ventana de "Debug" y seleccionando las opciones adecuadas, o directamente pulsando los iconos de dicha ventana. "Step over" parar en la lnea siguiente a la invocacin de un mtodo. "Resume" reanudar la ejecucin normal del programa y slo se interrumpir en los puntos de ruptura si sus condiciones de activacin se satisfacen.

La vista "Variables" proporciona informacin verdaderamente til ya que muestra los valores que tienen actualmente las variables cuando la ejecucin se detienen en un punto de ruptura. La vista de "Debug" tambin es til para observar diferentes procesos que estn siendo ejecutados simultneamente, como por ejemplo, hebras. Cuando el proceso de depuracin ha terminado, los procesos mostrados en la ventana de depuracin se muestran como "Finished" (pueden acabarse manualmente con "Clic derecho > Terminate"). La informacin de ejecuciones previas puede elminarse realizando clic derecho sobre ella y seleccionando "Terminate and Remove" o "Terminate All" ms "Remove All Terminated". Depurar un programa Java desde otra pantalla Mientras se depura un programa Java, se visualiza el fuente del programa cada vez que este se encuentra con un punto de interrupcin. Esto puede interferir con la salida de pantalla del programa Java. Para evitarlo, depure el programa Java desde otra pantalla. La salida del programa Java se visualiza donde se ejecuta el mandato Java, y el fuente del programa se visualiza en la otra pantalla. Para depurar Java desde otra pantalla: El programa Java debe estar retenido mientras se inicia la preparacin de la depuracin. Para retener el programa Java, puede hacer que el programa: Espere a que se produzca una entrada desde el teclado. Espere durante un intervalo de tiempo. Entre en un bucle para comprobar una variable, lo que requiere que usted haya establecido un valor para sacar el programa Java del bucle.

Una vez retenido el programa Java, vaya a otra pantalla y siga estos pasos: Entre el mandato Trabajar con trabajos activos (WRKACTJOB) en la lnea de mandatos. Busque el trabajo inmediato de proceso por lotes (BCI) en el que se est ejecutando el programa Java. Busque QJVACMDSRV en el listado Subsistema/trabajo. Busque su ID de usuario en el listado Usuario. Busque BCI bajo Tipo. Entre la opcin 5 para trabajar con el trabajo. En la parte superior de la pantalla Trabajar con trabajo figura el nmero, el usuario y el trabajo. Entre STRSRVJOB Nmero/Usuario/Trabajo.

Entre STRDBG CLASS(nombreclase). Nombreclase es el nombre de la clase Java que desea depurar. Puede tratarse del nombre de clase que ha especificado en el mandato Java o de otra clase. El fuente de dicha clase aparece en la pantalla Visualizar fuente de mdulo. Establezca puntos de interrupcin, pulsando F6 (Aadir/Borrar punto de interrupcin), all donde desee detenerse dentro de la clase Java. Pulse F14 para aadir ms clases, programas o programas de servicio que depurar. Si desea obtener ms informacin sobre cmo establecer puntos de interrupcin, consulte el apartado Establecer puntos de interrupcin. Pulse F12 (Reanudar) para seguir ejecutando el programa. Deje de retener el programa Java original. Cuando se llegue a un punto de interrupcin, aparecer la pantalla Visualizar fuente de mdulo en la pantalla en la que se hayan entrado los mandatos Arrancar programa de servicio (STRSRVJOB) y Arrancar depuracin (STRDBG). Cuando finalice el programa Java, aparecer el mensaje El trabajo al que se ha dado servicio ha finalizado. Entre el mandato Finalizar depuracin (ENDDBG). Entre el mandato Finalizar trabajo de servicio (ENDSRVJOB). En Variable de entorno QIBM_CHILD_JOB_SNDINQMSG hallar ms informacin sobre esta variable, que controla si el trabajo BCI queda en espera antes de llamar a la mquina virtual Java.

EQUIPO:#7

Você também pode gostar