¿Cómo analizar la información de un volcado de núcleo Java?

Si un proceso falla y deja un volcado del núcleo o yo creo uno con gcore , ¿cómo puedo analizarlo?

Me gustaría poder usar jmap , jstack , jstat , etc. y también para ver los valores de todas las variables.

De esta forma puedo encontrar las razones de una JVM bloqueada o congelada.

Está bien si has creado el volcado del núcleo con gcore o gdb, entonces necesitarás convertirlo a algo llamado archivo HPROF . Estos pueden ser utilizados por VisualVM, Netbeans o la herramienta Memory Analyzer de Eclipse (anteriormente SAP Memory Analyzer). Yo recomendaría Eclipse MAT.

Para convertir el archivo use la herramienta de línea de comandos jmap .

 # jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234 

dónde:

dump.hprof es el nombre del archivo hprof que desea crear

/ usr / bin / java es la ruta a la versión del binario de Java que generó el volcado del núcleo

core.1234 es tu archivo básico habitual.

Si está utilizando una IBM JVM , descargue IBM Thread y Monitor Dump Analyzer . Es una excelente herramienta. Proporciona detalles de hilos y puede señalar interlockings, etc. La siguiente publicación de blog proporciona una descripción general sobre cómo usarla.

Quizás VisualVM puede ayudar (aún no he tenido la oportunidad de probarlo yo mismo). Enlazar:

http://java.sun.com/javase/6/docs/technotes/guides/visualvm/coredumps.html

¿Estás seguro de que un basurero es lo que quieres aquí? Eso contendrá las agallas primas de la JVM en ejecución, en lugar de la información del nivel de Java. Quizás un volcado de almacenamiento JVM es más de lo que necesita.

En realidad, VisualVM puede procesar el volcado del núcleo de la aplicación.

Simplemente invoque “File / Add VM Coredump” y agregará una nueva aplicación en el explorador de aplicaciones. A continuación, puede realizar el volcado de hebras o el volcado de heap de esa JVM.

Pruebe el analizador de stack lady4j, podría ayudarlo a:

http://www.lady4j.com/solveStack.jsp

IBM proporciona una serie de herramientas que también se pueden usar en sun sun. Eche un vistazo a algunos de los proyectos en alphaworks, proporcionan analizadores de volcado de stack y de subprocesos

Karl

Te recomiendo que pruebes Netbeans Profiler . Tiene un amplio conjunto de herramientas para el análisis en tiempo real. Las herramientas de IbM merecen la pena para el análisis fuera de línea

jhat es uno de los mejores que he utilizado hasta ahora. Para realizar un volcado de memoria, creo que es mejor utilizar jmap y jps en lugar de gcore (no lo he usado). Verifique el enlace para ver cómo usar jhat. http://www.lshift.net/blog/2006/03/08/java-memory-profiling-with-jmap-and-jhat

Ver http://www.oracle.com/technetwork/java/javase/tsg-vm-149989.pdf . Puede usar “jdb” directamente en el archivo central.