windowsbuilder usar tutorial hacer debug como abrir java eclipse debugging return-value

usar - tutorial java eclipse windowbuilder



¿Puedo averiguar el valor de retorno antes de volver mientras estoy depurando en Eclipse? (8)

Dependiendo de la declaración de devolución, puede resaltar la expresión que se está devolviendo y desde el menú contextual, debería haber algo como "evaluar expresión" (no tengo eclipse ahora, pero es algo así ) Le mostrará lo que se va a devolver.

¿Es posible ver el valor de retorno de un método después de que se haya ejecutado la línea y antes de que el puntero de instrucción regrese a la función de llamada?

Estoy depurando el código que no puedo modificar (léase: no quiero volver a compilar una biblioteca de terceros) , y algunas veces salta al código No tengo fuente o la expresión de retorno tiene efectos secundarios que me impiden ser capaz de ejecutar solo la expresión en la pestaña Pantalla .

A menudo, el valor de retorno se utiliza en una declaración compuesta, por lo que la vista de variables nunca me mostrará el valor (por lo tanto, quiero ver el resultado antes de que el control regrese a la función de llamada).

ACTUALIZACIÓN: No puedo usar el visor de expresiones ya que hay efectos secundarios en la declaración.


Encontré un buen atajo para esto. Seleccione la expresión que devuelve el valor y presione

Ctrl + Shift + D

Esto mostrará el valor de la declaración de devolución. Esto es realmente útil en casos en los que no puede o no quiere cambiar solo para fines de depuración.

Espero que esto ayude.

Nota: No he probado esto con bibliotecas de terceros, pero está funcionando bien para mi código. Probado esto en Eclipse Java EE IDE para desarrolladores web. Versión: Juno Service Release 1


Es por eso que siempre me quedo con el siguiente patrón de métodos:

MyReturnedType foo() { MyReturnedType result = null; // do your stuff, modify the result or not return result; }

Mis reglas:

  1. Solo una declaración de devolución, solo al final del método (finalmente permitido después)
  2. Siempre tenga un resultado llamado local que contenga el valor devuelto, comenzando desde un valor predeterminado.

Naturalmente, los captadores más triviales están exentos.




Esto es un poco exagerado, pero como no parece ser una manera simple:

Puede usar AspectJ para instrumentar el JAR con aspectos que consigan el valor de retorno de los métodos que le interesan. Según la documentación de Eclipse, los programas de AspectJ se pueden debugged como otros programas.

Hay dos opciones para tejer sus clases sin volver a compilar la biblioteca:

  • Tejido posterior a la compilación si se acepta procesar el JAR binario;

  • Tejido en tiempo de carga, que requiere activar un agente de tejido en la máquina virtual.

Consulte la documentación de eclipse (enlace arriba) y también la Guía de entorno de desarrollo de AspectJ .


Tengo curiosidad por aprender la respuesta a esta pregunta también.

En el pasado, al tratar con una biblioteca de terceros como esa, lo que hice fue crear una clase contenedora o clase secundaria que delegaría en la clase principal y realizar mi depuración en la clase contenedora / secundaria. Sin embargo, toma trabajo extra.


Una dificil. Mi experiencia, fuera de Eclipse, es que si necesita ver el valor de retorno, lo mejor es asignarlo a una variable local en la función para que la declaración de retorno sea un nombre de return varname; simple return varname; y no return(some * expression || other); . Sin embargo, eso no es tremendamente útil para ti, ya que dices que no puedes (o no quieres) modificar o incluso recompilar el código. Por lo tanto, no tengo una buena respuesta para usted, quizás deba reconsiderar su requisito.