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.
![Cómo utilizar jdb para depurar programas Java sin un IDE - Video](https://i.ytimg.com/vi/ymV7lUUHkUU/hqdefault.jpg)
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.
![](https://newsmatic.com.ar/wp-content/uploads/como-utilizar-jep-un-analizador-de-expresiones-matematicas-en-java-150x150.jpg)
> 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
![](https://newsmatic.com.ar/wp-content/uploads/como-reducir-las-dependencias-entre-aplicaciones-con-java-message-service-jms-1-150x150.png)
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
![](https://newsmatic.com.ar/wp-content/uploads/la-importancia-de-la-simetria-en-el-diseno-de-clases-java-1-150x150.jpg)
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);
![](https://newsmatic.com.ar/wp-content/uploads/la-importancia-del-control-de-codigo-fuente-en-la-programacion-profesional-1-150x150.webp)
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.
![](https://newsmatic.com.ar/wp-content/uploads/como-utilizar-xstream-para-leer-y-escribir-archivos-de-configuracion-xml-1-150x150.jpg)
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.
![](https://newsmatic.com.ar/wp-content/uploads/como-optimizar-y-asegurar-tu-servidor-dns-10-consejos-esenciales-1-150x150.jpg)
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();
![](https://newsmatic.com.ar/wp-content/uploads/diferencias-entre-los-tipos-de-datos-single-y-double-en-vb6-150x150.jpg)
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