2010-05-20 11 views
134

Mientras se depura código Java, las cadenas en las vistas "variables" y "expresiones" dar la cara sólo hasta una cierta longitud, después de lo cual Eclipse muestra "..."Visualización de cadenas completas durante la depuración en Eclipse

Impedimentos forma de inspeccionar toda la cadena? (Esto alivia el dolor de agregar instrucciones de registro para la depuración en todas partes)

+0

¿dónde ves este comportamiento? qué parte del depurador? – skaffman

+0

En una nota lateral, este podría ser un nombre inapropiado, ya que podría no funcionar para usted, pero si utiliza una biblioteca de depuración como java.util.logging o log4j, puede convertir fácilmente sus instrucciones de depuración (con diferentes niveles de depuración) en las impresiones o en los archivos de registro, y puede darle la ventaja de que tamizar las cadenas en la ventana de depuración podría no ser así. Solo un pensamiento =) – corsiKa

Respuesta

181

En la vista de variables, puede hacer clic derecho en el panel Detalles (la sección donde se muestra el contenido de la cadena) y seleccionar el menú emergente "Longitud máxima ...". La misma longitud se aplica a la ventana emergente del inspector de expresiones y a algunos otros lugares.

enter image description here

+17

Solución mucho mejor que la seleccionada. ¡Gracias! – Colin

+11

Es bueno señalar que el Panel de detalles es la sección donde se muestra el contenido de la cadena. – Bnrdo

+1

¿Cómo hacer esto en eclipse kepler? Ayuda por favor – Foolish

16

Si usted tiene una cadena muy larga, usar una estrategia diferente: lo descarga en un archivo. Tengo un fragmento de código que uso en la vista Mostrar, que se evalúa para volcar los datos en un archivo. Yo uso Commons IO, pero puedes hacerlo con solo métodos JDK.

org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>); 

Naturalmente, necesitará el Commons IO JAR en su classpath para que funcione. Si no lo hace, recurra al trabajo de JDK.

+3

buena solución. Yo, personalmente, aceptaría esta como la mejor respuesta. Advertencia: tiene que definirse para el sistema donde se ejecuta JVM, lo que hace la diferencia si se trata de depuración remota, en cuyo caso el archivo se escribirá en el sistema remoto, no en la estación de trabajo donde se está ejecutando eclipse. – rexford

+0

Esta es la única solución que funcionó para mí. ¡Gracias! – Dherik

131

En el Variables, haga clic con el botón derecho en la variable y seleccione Cambie el valor. Si su variable es enorme, tiene que esperar unos minutos (en este caso, Eclipse no responde a los comandos) pero al final Eclipse mostrará su variable por completo.

+1

Solo puedo ver '" datos: imagen/mapa de bits; base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE ... (longitud: 22869) "'. Establecer la opción "Longitud máxima" no funciona y "Cambiar el valor" también. – falko

+0

@falko "Longitud máxima" no funcionó para mí, "Cambiar valor" estaba bien (después de esperar unos segundos, dependiendo de la longitud variable). – UmbySlipKnot

+0

Al menos en mi sistema, esto es * considerablemente * más lento que aumentar "Longitud máxima" (ver otra respuesta). – sleske

0

Para la depuración basada javascript en eclipse, método método de "valor de cambio" y "Longitud máxima" ambos fracasaron para mí, agregar el objeto requerido para ver (Expresiones) y luego Al hacer clic derecho en la expresión observado para seleccionar "Load Valor total " es la única solución que funciona para mí, pero incluso esto inserta" \ n "no deseado en la salida.

Nota " - La" Longitud máxima "debe establecerse para que" Load Full Value "funcione, ya que carga valores hasta la longitud máxima (el valor predeterminado en eclipse es 10000). Consulte la respuesta anterior para ver cómo establecer la longitud máxima.

4

Cuando depurador llega al punto en el que desea que el valor de cadena, sólo tiene que escribir una declaración SYSOUT

System.out.println("The value is : \n " + query); 

Seleccione el por encima de la declaración, derecha click-> Ejecutar

se imprimirá el valor en la consola

6

La mejor manera de ver un valor de Cadena desde la vista de depuración de eclipse es la siguiente.

1) Cambiar a vista de depuración en Eclipse

2) Seleccionar la variable deseada en el panel variable.

3) Haga clic derecho en el área de visualización del panel variable donde se muestra el valor y haga clic en Longitud máxima. Ingrese el valor máximo de char en el Panel de detalles de configuración.

4) Saludos

enter image description here

+1

Mucho mejor que la respuesta aceptada. ¡Gracias! – simon

0

No hay "maxLength" en Eclipse Marte. Y, el "valor de cambio" solo funciona con "Variables", no "Expresiones", por lo que ninguno de los anteriores funciona para mí.

enter image description here

Y, la expresión se cortan en el medio, no al final. Supongo que cambiaron el comportamiento predeterminado.

Lo único que funciona para mí es expandir el ancho de la columna del nombre de la expresión y hacer clic en la expresión para seleccionarlo todo y ver el contenido completo.

Cuestiones relacionadas