0

I am getting the following error when attempting to create a heap dump from a core file generated through gcore on Solaris:

jmap -J-d64 -dump:format=b,file=dump.hprof /usr/local/jdk/bin/java /tmp/core.15123
Attaching to core /tmp/core.15123 from executable /usr/local/jdk/bin/java, please wait...

Error attaching to core file: Did not find libthread in target process/core!

The JVM in which the core file was created from is the same java instance that is being used to create the heap dump. Anyone know why this error is occurring. I have done this in RedHat instances before, but first time on Solaris. Could this be due to Solaris gcore output not being compatible with jmap?

Any help would be greatly appreciated.

Robert Rogers
  • 63
  • 1
  • 6
  • Are you certain that the core file was generated by the executable at `/usr/local/jdk/bin/java`? What's the output from `file /usr/local/jdk/bin/java`? – Andrew Henle Apr 11 '16 at 10:29
  • file /usr/local/jdk/bin/java /usr/local/jdk/bin/java: ELF 32-bit MSB executable SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped, no debugging information available – Robert Rogers Apr 11 '16 at 19:33
  • That's a 32-bit executable. You're telling `jmap` by using the `-J-d64` option that your core file was generated by a 64-bit process. Mostly likely the actual binary the created the core file is `/usr/local/jdk/bin/sparcv9/java` – Andrew Henle Apr 15 '16 at 14:56
  • It looks as though this was due the core dump not completing in-time before our Wrapper killed the application. It also appears if you pass java the 64bit flag it will open sparcv9/java instead. Thanks for the help @AndrewHenle – Robert Rogers Apr 19 '16 at 08:26

0 Answers0