Cómo utilizar jdb para depurar programas Java sin un IDE

¿Qué haces cuando necesitas depurar un programa Java y tu IDE no está para ayudarte? Recurres a jdb, que es el depurador de Java proporcionado por Sun. Es basado en consola y puede parecer un retroceso a los buenos viejos días de programación, pero funciona y (cuando no tienes otras opciones) es una excelente herramienta para tener en tu kit de programación.

Índice de Contenido
  1. Seteando Puntos de Interrupción y Evaluando Variables
  2. Una Sesión de Depuración Ejemplo con jdb

Seteando Puntos de Interrupción y Evaluando Variables

Con jdb, puedes hacer la mayoría de las cosas que estás acostumbrado a hacer en un depurador normal: establecer puntos de interrupción, evaluar variables, avanzar y entrar en el código, etc. El uso de jdb requerirá que aprendas algunos de los comandos de jdb. Para aprovechar al máximo tus sesiones de depuración con jdb, querrás compilar tu código con el interruptor -g para que se coloque información de depuración en tus archivos de clase.

Una Sesión de Depuración Ejemplo con jdb

A continuación, se muestra la salida de una sesión de depuración simple. Para iniciar la sesión, invocamos el comando jdb con el nombre de la clase de nuestra aplicación.

/usr/home/reas>jdb DebugTip

Inicializando jdb...

A continuación, establecemos un punto de interrupción en el método "bar" de nuestra clase DebugTip.

Cómo utilizar JEP: un analizador de expresiones matemáticas en Java

> stop in DebugTip.bar

Postergando punto de interrupción DebugTip.bar.

Se establecerá después de que la clase se cargue.

Ahora, usamos el comando run para comenzar la ejecución del programa.

> run

Ejecutar DebugTip

Cómo reducir las dependencias entre aplicaciones con Java Message Service (JMS)

Establecer sin capturar java.lang.Throwable

Establecer diferido sin capturar java.lang.Throwable

>

VM Iniciada: Estableciendo punto de interrupción diferido en DebugTip.bar

foo

Se ha alcanzado el punto de interrupción: "hilo=principal", DebugTip.bar(), línea=15 bci=0

La importancia de la simetría en el diseño de clases Java

15              Date

date = new Date();

Después de ejecutar la línea, jdb se detiene nuevamente. Ahora usaremos el comando next para ejecutar la siguiente instrucción.

main[1] next

>

Paso completado: "hilo=principal", DebugTip.bar(), línea=17 bci=8

17          
System.out.println("la hora actual es: " + date);

La importancia del control de código fuente en la programación profesional

Después de ejecutar la línea, jdb se detiene nuevamente. Ahora usaremos el comando locals para mostrar las variables locales. Como puedes ver en la salida, solo hay una variable: date.

main[1] locals

Argumentos del método:

Variables locales:

date = instancia de java.util.Date(id=297)

Usando el comando cont, jdb continúa ejecutando código hasta que se alcance el próximo punto de interrupción. Dado que no hay más puntos de interrupción, la ejecución continúa hasta que el método principal termina.

Cómo utilizar XStream para leer y escribir archivos de configuración XML

main[1] cont

> la hora actual es: Tue Nov 18 11:46:19 EST 2003

bar

La aplicación ha finalizado

jdb tiene las características que necesitas para una sesión de depuración productiva. Si estás acostumbrado a los depuradores de IDE, la interfaz de consola puede resultar intimidante, pero no dejes que eso te impida aprender más al respecto. Cuando intentas identificar un problema en un sistema operativo sin interfaz gráfica o sin un IDE, jdb es una herramienta útil que debes tener a tu disposición.

Hay muchos comandos, siendo el más importante el comando help, que muestra todos los comandos y opciones disponibles. Consulta la documentación y pruébalo con la clase de ejemplo. Será tiempo bien invertido.

Cómo optimizar y asegurar tu servidor DNS: 10 consejos esenciales

import java.util.Date;

public class DebugTip {
     public static void main(String args[]) {
         DebugTip dt = new DebugTip();

         dt.foo();
     }

     public void foo() {
         System.out.println("foo");

         bar();
     }

     private void bar() {
         Date date = new Date();

Diferencias entre los tipos de datos Single y Double en VB6

         System.out.println("la hora actual es: " + date);
         System.out.println("bar");
     }
}

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo utilizar jdb para depurar programas Java sin un IDE , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.