Depuracion Con Eclipse

13
DEPURACIÓN CON ECLIPSE En este artículo se describe cómo depurar una aplicación Java en Eclipse. Este artículo está basado en Eclipse 4.2 (Eclipse Juno). 1. Visión de conjunto 1,1. ¿Qué es la depuración? La depuración permite ejecutar el programa de forma interactiva y ver el código fuente y las variables durante la ejecución. 1,2. Soporte a la depuración en Eclipse Eclipse permite iniciar un programa Java en modo de depuración. Se pueden establecer puntos de interrupción en el código Java a la que la ejecución del código Java se detendrá. Eclipse tiene una perspectiva especial de depuración que permiten controlar el proceso de ejecución de su programa y investigar el estado de las variables. 2. Requisitos previos Se asume que saber desarrollar programas Java sencillos estándar. Este artículo se centrará en cómo depurar aplicaciones Java en Eclipse. . 3. Depurar en Eclipse 3,1. Establecer puntos de interrupción Para establecer puntos de interrupción pulse el botón derecho del ratón en el margen izquierdo en el editor de código fuente y seleccione Establecer/quitar punto de interrupción (Toggle Breakpoint). Como alternativa, puede hacer doble clic en esta posición.

Transcript of Depuracion Con Eclipse

Page 1: Depuracion Con Eclipse

DEPURACIÓN CON ECLIPSE

En este artículo se describe cómo depurar una aplicación Java en Eclipse.

Este artículo está basado en Eclipse 4.2 (Eclipse Juno).

1. Visión de conjunto

1,1. ¿Qué es la depuración?

La depuración permite ejecutar el programa de forma interactiva y ver el código fuente y las variables durante la ejecución.

1,2. Soporte a la depuración en Eclipse

Eclipse permite iniciar un programa Java en modo de depuración. Se pueden establecer puntos de interrupción en el código Java a la que la ejecución del código Java se detendrá.

Eclipse tiene una perspectiva especial de depuración que permiten controlar el proceso de ejecución de su programa y investigar el estado de las variables.

2. Requisitos previos

Se asume que saber desarrollar programas Java sencillos estándar. Este artículo se centrará en cómo depurar aplicaciones Java en Eclipse.

.

3. Depurar en Eclipse

3,1. Establecer puntos de interrupción

Para establecer puntos de interrupción pulse el botón derecho del ratón en el margen izquierdo en el editor de código fuente y seleccione Establecer/quitar punto de interrupción (Toggle Breakpoint). Como alternativa, puede hacer doble clic en esta posición.

Page 2: Depuracion Con Eclipse

Por ejemplo, en la siguiente captura de pantalla se establece un punto de interrupción en la línea de Counter counter = new Counter(); .

3,2. Iniciar el depurador

Para depurar la aplicación, seleccione un archivo Java que contiene un método principal, haga clic con el botón derecho sobre él y seleccione Debug → Como aplicación Java. (Debug as Java Application)

Page 3: Depuracion Con Eclipse

Si no se ha definido ningún punto de interrupción, se ejecuta su programa de forma normal. Para depurar el programa es preciso haber definido puntos de interrupción previamente.

Si se inicia el depurador primera vez, Eclipse le pregunta si desea cambiar a la perspectiva de depuración. Responda "sí". A continuación, debería ver una perspectiva similar a la siguiente.

Page 4: Depuracion Con Eclipse

Usted puede utilizar F5 / F6, F7 y F8 para recorrer su codificación. El significado de estas teclas se explica en la siguiente tabla.

Tabla 1. Depuración Teclas

Comando Descripción

F5 Va al siguiente paso en su programa. Si el siguiente paso es un método / función de este comando saltará en el código asociado.

F6 F6 pasar por encima de la llamada, es decir, se llama a un método / función sin necesidad de introducir el código asociado.

F7 F7 irá al llamador del método / función. Esto dejará el código actual y pasará al código de llamada.

F8 Use F8 para ir al siguiente punto de interrupción. Si no hay ningún punto de interrupción adicional el programa se ejecutará con normalidad.

Estos comandos también están disponibles en la barra de herramientas de Eclipse. El cuadro siguiente muestra los botones y sus atajos de teclado relacionados.

3,3. Apilar

Page 5: Depuracion Con Eclipse

La pila de llamadas muestra las partes del programa que se están ejecutando actualmente y cómo se relacionan entre sí. La pila actual se muestra en la perspectiva de depuración.

3,4. Evaluación de las variables

Las vista de variables muestra los campos y variables locales de la pila actual. Tenga en cuenta que se necesita ejecutar el depurador para ver las variables en esta vista.

Use el menú desplegable para mostrar las variables estáticas.

Mediante el menú desplegable también puede personalizar las columnas que se muestran. Por ejemplo, puede mostrar el tipo real de cada declaración de variable. Para ello

seleccione Layout → Select Columns... → Type.

Page 6: Depuracion Con Eclipse

Otra característica interesante es la New Detail Formatter en el que se puede definir como una variable se muestra en la pantalla. Por ejemplo, el método toString() en nuestra clase Counter muestra algo sin sentido, por ejemplo com.depurador.ejemplo.Counter@587c94 . Botón derecho del ratón en la variable y seleccione → New Detail Formatter (Nuevo formato detallad).

Por ejemplo, para utilizar el método getResult() para la visualización en las variables de la vista se podría añadir el siguiente código.

Page 7: Depuracion Con Eclipse

4. Depuración Avanzada

La siguiente sección muestra las opciones avanzadas para la depuración. No se basa en el ejemplo presentado anteriormente.

4,1. Saltar todos los puntos de interrupción

Si desea desactivar temporalmente todos los puntos de interrupción, puede pulsar el botón Omitir todos los puntos de interrupción. Este botón es visible, si se selecciona la pestaña Puntos de interrupción.

Si pulsa este botón una vez más, los puntos de interrupción se reactivarán.

4,2. Breakpoint Properties

Después de establecer un punto de interrupción se pueden seleccionar las propiedades del punto de interrupción, a través del botón derecho → Propiedades del punto de interrupción. Se puede definir una condición que restringe cuando el punto de interrupción se activará.

Por ejemplo, especificar que el punto de interrupción sólo debe ser activa después de que se ha alcanzado 12 o más veces (recuento de visitas).

O bien, puede poner en una expresión condicional (que también se puede utilizar para el registro). La ejecución se detiene en el punto de interrupción, si la condición se evalúa como verdadera.

Page 8: Depuracion Con Eclipse

4,3. Watchpoint

Un punto de observación es un punto de interrupción en un campo. El depurador se detendrá cada vez que se lee el campo o se produce un cambio en él.

Se puede establecer un punto de observación al hacer doble clic en el margen izquierdo, junto a la declaración de campo. En las propiedades de un punto de observación se puede

Page 9: Depuracion Con Eclipse

definir si la ejecución debe parar durante el acceso o lectura (Field Access) o durante la escritura (Modificación de Campo).

4,4. Excepción Breakpoint

También puede establecer puntos de interrupción que se activan cuando se producen excepciones. Para definir un punto de interrupción de excepción haz clic en "Add Java exceptión Breakpoint" icono en la barra de herramientas de la vista "puntos de ruptura”.

Puede definir si desea detener para las excepciones capturadas y / o excepciones no capturadas.

4,5. Punto de interrupción en un método

Un punto de interrupción en un método está definido con un doble clic en el margen izquierdo del editor junto a la cabecera del método.

Puede definir si desea detener el programa antes de entrar o después de salir del método.

Page 10: Depuracion Con Eclipse

4,6. Punto de interrupción de carga de clase

Un punto de interrupción de carga de clase se detendrá cuando la clase es cargada.

Para establecer un punto de interrupción de carga de clases, haga clic en una categoría en la vista Esquema y elija la opción "Alternar punto de interrupción de carga de clase".

Page 11: Depuracion Con Eclipse

4,7. Contadores

Por cada punto de interrupción se puede definir un recuento de visitas en sus propiedades. La aplicación se detiene una vez que se alcanza el número de veces definido en el recuento de visitas.

4,9. Volver a un estado de ejecución anterior

Eclipse le permite seleccionar cualquier nivel (frame) en la pila de llamadas durante la depuración y ajuste la JVM para reiniciar el programa a partir de ese punto.

Esto le permite volver a ejecutar una parte del programa. Tenga en cuenta que las variables que han sido modificados por código que ya ha ejecutado permanecerán modificadan.

Los cambios realizados en las variables o datos externos, por ejemplo ficheros, bases de datos, no se restablecerá cuando se retrotae la ejecución a un estado anterior.

Para utilizar esta función, seleccione un nivel en la pila y pulse el botón "Drop to Frame" en la barra de herramientas de la vista de depuración.

Por ejemplo, usted puede reiniciar el bucle "for". El campo "número" no será reseteado en este caso.

Page 12: Depuracion Con Eclipse

5. Ejercicio: Crear un proyecto para la depuración

5,1. Crear proyecto

Para la depuración vamos a crear un proyecto de ejemplo. Crear un proyecto Java con el nombre com.depurador.ejemplo y agregar el paquete com.depurador.ejemplo . Crear las siguientes clases.

package com.depurador.ejemplo; public class Counter { private int result = 0 ;

public int getResult() {

return result;

}

public void count() {

for ( int i = 0 ; i < 100 ; i++) {

result += i + 1 ;

}

}

}

package com.depurador.ejemplo; public class Main {

/**

* @param args

*/

public static void main(String[] args) {

Page 13: Depuracion Con Eclipse

Counter counter = new Counter();

counter.count();

System.out.println( "Hemos contado "

+ counter.getResult());

}

}

5,2. Depuración

Pon un punto de interrupción en la Counter la clase. Sigue la ejecución del método count.

Definir un Formater detallado para Contador, que utiliza el método. getResult

Eliminar el punto de interrupción y añadir un punto de ruptura para la carga de clases.