How to analyze a large core dump generated when JVM crashes
It seems that this core file is not for Java-related tools like Eclipse MAT tool or IBM Thread and Monitor Dump Analyzer for Java. The tools for the core file are gdb
or pmap
, pstack
. I thought I can debug why application crashes JVM, but the core file seems to have little information about application-level things.
Java, get core dump
The easy way to do this kind of thing is to attach an interactive debugger to the JVM, pause it, and use the debugger to look at the stacks, etc.
Java 8 mdmp dump file analyzing with jvisualvm Add VM Coredump grayed / blanked out
You must be on Solaris or Linux to access the VisualVM Coredumps option.
In the documentation (http://visualvm.java.net/coredumps.html) it says:
The Core Dump node is visible in the Applications window if VisualVM is running on Solaris or Linux. Generally, VisualVM can only open a core dump if the core dump was taken on the same machine. A core dump contains informaton on the Java Development Kit (JDK) and kernel of the machine where the core dump was taken. To open the core dump in VisualVM, this information must match the JDK software and kernel of the local system.
Analysis jvm core file?
Like @SMA suggests, the hs_err{pid} file will have most of the things you need (or can make use of)
IMGO The core dump isn't useful unless you have a debug build of the JVM e.g. you built the OpenJDK for DEBUG.
Related Topics
JSON Gson.Fromjson Java Objects
Convert Localdate to Localdatetime or Java.Sql.Timestamp
Is 1/0 a Legal Java Expression
Where Is the Correct Location to Put Log4J.Properties in an Eclipse Project
How to Disable the Default Console Handler, While Using the Java Logging API
Java's Virtual MAChine's Endianness
Cleanest Way to Toggle a Boolean Variable in Java
Add Multiple Items to an Already Initialized Arraylist in Java
In Java 8, Why Is the Default Capacity of Arraylist Now Zero
Java Code for Getting Current Time
Block()/Blockfirst()/Blocklast() Are Blocking Error When Calling Bodytomono After Exchange()