2008-09-17 25 views

Respuesta

4

acabo de utilizar jdb por primera vez ayer y estoy muy satisfecho con los resultados. Verá, programo en Eclipse en mi computadora portátil y luego lo despliego en una VM para asegurarme de que todo el shebang aún funciona. Muy ocasionalmente, tendré que trabajar en algo que se ejecute de manera independiente, como una línea de comando. Estas cosas a veces necesitan depuración.

Esto siempre ha sido un problema, porque no quiero tomar la molestia de instalar Eclipse en la máquina virtual (¡ya es lo suficientemente lento!), Pero no conozco una manera fácil de conseguirlo. conectarse a mi clase de ejecución de línea de comando antes de que termine de ejecutarse.

jdb al rescate! Funciona de maravilla: pequeño y funcional, casi hasta el punto en que está desnudo ... esto te obliga a aplicar tu mente más de lo que aplicas la herramienta (como dije here).

Asegúrese de imprimir la referencia (solaris, windows, java 1.5 - Creo que son todos del mismo, en realidad) y tienen su código de fuente abierta y navegable en su segunda pantalla. Espero que tengas una segunda pantalla, o estarás alt-tabbing mucho.

+0

Según lo mencionado por codingME en otra respuesta, puede utilizar JPDA (http://docs.oracle.com/javase/1.5. 0/docs/guide/jpda/conninv.html) la línea de comandos cambia para hacer que su máquina virtual de Java escuche la conexión de un depurador. Intente suspender = y suspender la ejecución hasta que se conecte un depurador, evitando el problema de que el programa finalice antes de que se conecte el depurador. Al especificar un número de puerto adecuado combinado con la configuración del firewall o la configuración del túnel SSH, puede conectarse a su máquina virtual remota a través de la red. por ejemplo: -agentlib: jdwp = transport = dt_socket, server = y, address = 5005, suspend = y – Neek

-1

Yo prefiero usar las herramientas de depuración remota en eclipse.

-3

JDB es muy difícil de usar. Colocar System.outs o usar un depurador IDE producirá mejores resultados. Y para las características más interesantes (por ejemplo, seguimiento de hilos, tamaño de pila, etc.), puede obtener la información gráficamente con la herramienta JConsole.

+0

JDB es tan fácil de usar como cualquier depurador, esta retroalimentación es improductivo . también JConsole no permite que usted pueda ver las variables, establecer puntos de interrupción, rotura de excepciones, etc. –

2

asuma que su programa se inicia mediante el siguiente comando:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=<port> <class> 

puede adjuntar a este proceso mediante la jdb:

jdb -attach <port> 
Cuestiones relacionadas