How to analyze information from a Java core dump?

margus picture margus · Jun 4, 2009 · Viewed 151.1k times · Source

If a process crashes and leaves a core dump or I create one with gcore then how can I analyze it?

I'd like to be able to use jmap, jstack, jstat etc and also to see values of all variables.

This way I can find the reasons for a crashed or frozen JVM.

Answer

chillitom picture chillitom · Jul 28, 2009

Okay if you've created the core dump with gcore or gdb then you'll need to convert it to something called a HPROF file. These can be used by VisualVM, Netbeans or Eclipse's Memory Analyzer Tool (formerly SAP Memory Analyzer). I'd recommend Eclipse MAT.

To convert the file use the commandline tool jmap.

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

where:

dump.hprof is the name of the hprof file you wish to create

/usr/bin/java is the path to the version of the java binary that generated the core dump

core.1234 is your regular core file.