Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar herramientas de depuración en eclipse para depurar aplicaciones implementadas en weblogic?

¿Cómo utilizar herramientas de depuración en eclipse para depurar aplicaciones implementadas en weblogic?

La depuración es una tarea que los programadores no pueden evitar. Hay muchas formas de depurar, pero en última instancia, aún debe encontrar el código que causó el error. Por ejemplo, en las aplicaciones Linux, las fallas de segmentación se consideran uno de los errores más comunes. Este error ocurre cuando un programa intenta acceder a la memoria que no está asignada y finaliza debido a una violación de segmentación.

Para corregir este error, necesita encontrar la línea de código que causa este comportamiento. Una vez que encuentre la línea de código infractora, también puede resultar útil comprender el contexto en el que se produjo el error y sus valores, variables y métodos asociados. Usar un depurador hará que encontrar esta información sea muy fácil.

Depurador de Eclipse y vista de depuración

La plataforma Eclipse tiene un depurador de Java integrado que proporciona todas las funciones de depuración estándar, incluido el paso a paso, el establecimiento de puntos de interrupción y valores, y la inspección de variables y valores y suspender y reanudar hilos. Además, puede depurar aplicaciones que se ejecutan en máquinas remotas. La plataforma Eclipse es principalmente un entorno de desarrollo Java, pero su arquitectura también está abierta a otros lenguajes de programación. Como se muestra a continuación, la misma vista de depuración de Eclipse también funciona para los lenguajes de programación C y C++.

Eclipse Platform Workbench y sus herramientas se basan en componentes de herramientas de desarrollo Java (JDT). Estos componentes proporcionan la siguiente funcionalidad a Eclipse:

1. Herramientas de gestión de proyectos

2 Perspectivas y vistas

3.

4. Depurador

El depurador de Eclipse existe como un complemento estándar y está incluido en el binario de Eclipse. Eclipse también tiene una vista de depuración especial que le permite administrar la depuración y ejecución de su programa en el banco de trabajo. Puede mostrar marcos de pila para cada objetivo en la depuración y mostrar sus subprocesos suspendidos. Los subprocesos del programa se muestran como nodos de árbol y la vista de depuración muestra el progreso de cada objetivo de ejecución. Si un hilo está suspendido, su marco de pila se muestra como un elemento secundario.

Antes de comenzar a utilizar el depurador de Eclipse, asumimos que tiene instalado el SDK/JRE de Java adecuado (recomiendo instalar Java VM 1.4) y el SDK de la plataforma Eclipse 2.0/2.1, y que ambos funcionan correctamente. .

En general, es mejor probar primero las opciones de depuración utilizando los ejemplos de Eclipse. Si desea desarrollar y depurar proyectos C/C++, también necesita obtener e instalar las herramientas de desarrollo C/C++ (CDT). Para enlaces a Java SDK/JRE, Eclipse Platform and Samples y CDT, la Figura 1 muestra una vista general de la interfaz de usuario de depuración.

Figura 1. Vista general de la interfaz de usuario de Vista de depuración de Eclipse

Depuración de Java

Antes de poder depurar su proyecto, debe compilar y ejecutar todo el proceso. código. Primero, debe crear una configuración de tiempo de ejecución para su aplicación y asegurarse de que se inicie correctamente. Luego deberá configurar la configuración de depuración de la misma manera usando el menú Ejecutar > Depurar.... También debe seleccionar la clase utilizada por el depurador como clase principal de Java (consulte también la Figura 2). Un proyecto puede tener múltiples configuraciones de depuración. Una vez que se haya iniciado el depurador (a través de Ejecutar > Depurar...), se abrirá en una nueva ventana y podrá comenzar a depurar.

Figura 2. Configuración de la clase Java principal del proyecto en la configuración de depuración

La siguiente es una guía de muestra para las operaciones de depuración más comunes de Eclipse:

Configuración de puntos de interrupción

Cuando inicia una aplicación para depurar, Eclipse cambia automáticamente a la perspectiva de depuración. Sin duda, el procedimiento de depuración más común es establecer puntos de interrupción para poder examinar variables y valores en sentencias y bucles condicionales. Para establecer un punto de interrupción en la vista Explorador de paquetes de la perspectiva Java, haga doble clic en el archivo de código fuente seleccionado para abrir el archivo en el editor. Recorra todo el código, colocando el cursor en la barra de marcador (en el lado izquierdo del área del editor) de la línea que contiene el código sospechoso.

Haga doble clic para establecer un punto de interrupción (consulte también la Figura 3).

Figura 3. Dos marcadores de punto de interrupción son visibles en el borde izquierdo del editor

Ahora inicie una sesión de depuración a través del menú Ejecutar > Depurar.... Es importante no colocar varias declaraciones en la misma línea porque no se pueden realizar un solo paso ni establecer puntos de interrupción de línea en varias declaraciones en la misma línea (consulte también la Figura 4).

Figura 4. La vista indica la línea que se está ejecutando actualmente mediante una flecha en el borde izquierdo

Puntos de interrupción condicionales

Después de encontrar el error, querrás saber sobre el fallo del programa La operación que se está realizando actualmente. Una forma de lograrlo es recorrer cada declaración del programa, una oración a la vez, hasta llegar al punto donde ocurre el problema. A veces, un mejor enfoque es ejecutar un fragmento de código directamente y finalizar su ejecución en el punto donde ocurre el problema, de modo que se puedan inspeccionar los datos en esa ubicación. Para hacer esto, es posible que necesite declarar puntos de interrupción condicionales que se activan cada vez que cambia el valor de la expresión (consulte la Figura 5). Además, puede utilizar la asistencia de código al ingresar expresiones condicionales.

Figura 5. Configuración de un activador de punto de interrupción condicional

Evaluación de una expresión

Para evaluar una expresión en el Editor dinámico de depuración, seleccione Establecer punto de interrupción en toda la fila y seleccione el Opción Inspeccionar en el menú contextual (ver Figura 6). La expresión se evaluará en el contexto del marco de pila actual y los resultados de la evaluación se mostrarán en la vista Expresión de la ventana de visualización.

Figura 6. Encuentre el valor de una expresión usando la opción Inspeccionar

Inspeccionar variables

La vista Variables (en la ventana de visualización) muestra la variable de pila seleccionada valores en el marco (ver Figura 7). Para ver la variable que desea, simplemente expanda el árbol en la vista Variables hasta que vea el elemento que desea. También puede ver las variables en la vista Variables mientras recorre el código en la vista Depurar.

Figura 7. Ver variables en la ventana de visualización

Cuando el depurador se detiene en un punto de interrupción, puede seleccionar la opción Paso por encima en el menú Ejecutar > Depurar... y luego Seleccione la opción Paso por encima para continuar con la depuración (consulte la Figura 8). Esto pasará por encima de la línea de código resaltada y ejecutará la siguiente línea de código en el mismo método (o continuará la ejecución en el método que llamó al método actual). Las variables que hayan cambiado desde el paso anterior se resaltarán en un color (rojo de forma predeterminada) que se puede especificar en la preferencia Color de valor de variable modificado (especificada en la vista Variables de depuración).

Figura 8. Ejecutar.... comando del depurador del menú

Para pausar un hilo de ejecución en la vista de depuración, seleccione un hilo en ejecución y haga clic en el botón de pausa de la barra de herramientas de la vista de depuración. Se muestra la pila de llamadas actual del hilo, con la línea que se está ejecutando actualmente resaltada en el Editor de vista de depuración.

Mientras el hilo está en pausa, coloque el cursor sobre una variable en el editor Java y el valor de la variable se mostrará en una pequeña ventana flotante. Del mismo modo, el marco de pila superior del hilo se selecciona automáticamente y las variables visibles en ese marco de pila se muestran en la vista de variables. Puede inspeccionar la variable correspondiente haciendo clic en su nombre en la vista Variables.

Corrección de errores Hotswap: corrección de código en vivo Si está ejecutando JVM 1.4 (máquina virtual Java), Eclipse 2.0.2 y 2.1 proporcionarán una nueva función llamada corrección de errores Hotswap (no se aplica a JVM 1.3 o inferior). versión). - Ver también Figura 9).

Le permite cambiar el código fuente durante la sesión del depurador, lo cual es mucho mejor que una serie de pasos de "salir de la aplicación, cambiar el código fuente, recompilar e iniciar otra sesión de depuración". Para utilizar esta función, simplemente modifique su código en el editor y continúe con la depuración. Esta característica está disponible ya que JVM 1.4 es compatible con Java Platform Debugger Architecture (JPDA).

JPDA admite la sustitución de código modificado por código modificado en una aplicación en ejecución. Por supuesto, esta función es útil cuando iniciar una aplicación o encontrar un punto de error lleva mucho tiempo.

Figura 9. La corrección de errores de conexión en caliente no está disponible en JVM 1.3 y versiones anteriores

Si completa la depuración sin ejecutar completamente el programa, haga clic en la opción Seleccionar la opción Terminar de el menú contextual. Un error común es utilizar Depurar o Ejecutar en lugar de Reanudar en una sesión del depurador, lo que iniciará otra sesión del depurador en lugar de continuar con la sesión actual.

Depuración remota

El depurador de Eclipse proporciona una opción interesante para depurar aplicaciones remotas. Puede conectarse a una máquina virtual remota que ejecute una aplicación Java y conectarla al depurador interno. Manejar una sesión de depuración remota es muy similar a la depuración local. Sin embargo, la configuración de depuración remota requiere configuraciones diferentes para la ventana Ejecutar depuración.... Primero, seleccione el proyecto de aplicación Java remota en la vista izquierda y haga clic en el botón Nuevo. Esto creará una nueva configuración de inicio remoto y mostrará tres pestañas:

En el campo Proyecto de la pestaña Conexión, seleccione el proyecto que se usará como preferencia de inicio (usado para encontrar el código fuente). En la pestaña Conexión, en el campo Host, ingrese la dirección IP o el nombre de dominio del host remoto que ejecuta el programa Java. En la pestaña Conexión, en el campo Puerto, ingrese el puerto en el que la máquina virtual remota acepta conexiones.

Normalmente, el puerto se especifica cuando se inicia la máquina virtual remota. Si desea que el depurador determine si el comando Kill está disponible en la sesión remota, puede seleccionar la opción Permitir que se finalice la máquina virtual remota. Seleccione esta opción si desea finalizar la máquina virtual conectada. Ahora, cuando selecciona la opción de depuración, el depurador intenta conectarse a la máquina virtual remota en la dirección y el puerto especificados y muestra los resultados en la vista de depuración.

Si el iniciador no puede conectarse a la máquina virtual en la ubicación especificada, se muestra un mensaje de error. En términos generales, la disponibilidad de la funcionalidad de depuración remota depende completamente de la VM (máquina virtual) Java que se ejecuta en el host remoto. La Figura 10 muestra la configuración de las propiedades de conexión para una sesión de depuración remota.

Figura 10. Configuración de propiedades de conexión para una sesión de depuración remota

Depuración de otros idiomas

Java es el idioma principal de la plataforma Eclipse. Sin embargo, la plataforma Eclipse también es una plataforma extensible que admite muchos otros lenguajes, el más importante de los cuales (debido a su popularidad) es C/C++, que Eclipse admite a través de las herramientas de desarrollo C/C++ (CDT). Consulte Recursos para enlaces.

CDT amplía la vista de depuración estándar de Eclipse con la capacidad de depurar código C/C++. La vista de depuración de CDT le permite administrar la depuración de proyectos C/C++ en el banco de trabajo. CDT no contiene su propio depurador interno, pero proporciona una interfaz para el depurador GNU GDB, que debe estar disponible localmente.

Después de descargar e instalar CDT, puede comenzar a depurar su proyecto C/C++ actual simplemente cambiando a la vista de depuración (consulte Recursos para obtener un enlace a un artículo sobre cómo instalar CDT). Esto le permite establecer (y cambiar en cualquier momento durante la ejecución) puntos de interrupción en su código y rastrear variables y registros.

El depurador de Eclipse muestra los marcos de pila de los subprocesos pendientes para cada objetivo que depura. Los subprocesos individuales de un programa se muestran como nodos de árbol. Muestra los procesos en ejecución para cada objetivo. Tenga en cuenta que al depurar programas con GNU GDB, es mejor utilizar enlaces simbólicos de depuración. Esto se puede lograr en tiempo de compilación mediante el parámetro de línea de comando -g. Para obtener más información, utilice el modificador -ggdb, que contiene símbolos de depuración específicos de GNU GDB.

Si desea depurar servlets, utilice Sysdeo Eclipse Tomcat Launcher, un complemento que le permite administrar contenedores de servlets Tomcat 4.x/3.3 mediante la creación e importación de proyectos WAR de Tomcat. También registra el proceso Tomcat con el depurador interno de Java Eclipse para facilitar la depuración de las aplicaciones Tomcat.

Hay otros complementos de Eclipse que nos permiten usar el depurador interno de Eclipse para servlets, como el complemento Eclipse de Cactus, el complemento Resin y el complemento ServletExec X-Parrots.

Conclusión

La plataforma Eclipse proporciona un depurador de Java integrado con capacidades de depuración estándar, que incluyen pasos únicos, establecimiento de puntos de interrupción y valores, inspección de variables y valores, y pausa y reanudación de subprocesos. función. La plataforma Eclipse es principalmente un entorno de desarrollo Java, pero las mismas vistas de depuración de Eclipse están disponibles para los lenguajes de programación C y C++.