Me preguntaba si existe algo (en el mundo Java) capaz de tomar una instantánea del estado actual JVM con las siguientes características:automatizado de excepciones de manipulación
- hacerlo mientras una excepción está siendo lanzada.
- Captura de variables locales, argumentos del método, etc.
- Colóquelo en un archivo útil que pueda usarse para extraer o reproducir en un IDE la situación en su código fuente.
Se requieren las dos primeras características (la tercera sería increíble). Y debe ser adecuado para el uso de producción (por lo tanto, no hay forma de eliminar errores).
Antes de hacer esta He buscado a través de la WWW (el mayor tiempo posible) y me di algunos consejos:
- Cajoon Interceptor: Como se ha dicho en Dzone post, que es un agente JVM pasiva que cumple los tres requisitos! Pero tiene dos desventajas: debe pagar y el sitio está caído (tal vez no hay posibilidad de pagar nada).
- AviCode Intercept Studio: equivalente .NET de Cajoon. Solo para dar una idea acerca de.
- JavaFrame: Ok, es un tweet, pero apunta a un repositorio SVN disponible que tiene el código fuente (bajo licencia MIT) de un agente JVM que se ve bien (voy a intentarlo).
Entonces, ¿tal vez estoy buscando una solución inexistente? No es urgente, pero tenía esta idea para un proyecto y sería genial explorar este camino "desconocido" (?) Y obtener algo real.
Parece estar claro que sería un agente JVM (evento de excepción de JVMTI, para example).
Por último, me gustaría destacar el párrafo followin de Wikipedia's Exception Handling article:
En entornos de tiempo de ejecución del motor como Java o .NET, existen herramientas que sujetan al motor de tiempo de ejecución y cada vez que un Se produce la excepción de interés , registran la depuración información que existía en la memoria en el momento en que se produjo la excepción (pila de llamadas y valores de montón). Estas herramientas se denominan Excepción automatizada Herramientas de manipulación o interceptación de errores y proporcionan información de 'causa raíz' para conocer las excepciones.
Esa es la idea. Espero que alguien me pueda dar alguna información o tal vez, en el futuro, alguien se inspire en esta humilde publicación :)
¡Gracias!
Tengo curiosidad por saber si se han encontrado otras soluciones. – dsatish