1

Everything was fine, but when the recent Java update happend it blew away everything in the Java directory, including things that didn't belong to it. Now I'm trying to get Hotspot assembly printouts working again, but it keeps crashing the VM.

I've done this many times (and there often seems to be an issue).

I downloaded the hsdis-amd64.so from Kenai: https://kenai.com/projects/base-hsdis/downloads

I moved it to: /usr/lib/jvm/java-8-oracle/jre/lib/amd64/hsdis-amd64.so

And java now bombs when I try to use it. I can't find a mention to this anywhere online. I'll have to revert to the pervious java update somehow if I can't get this to work.

me@machine:~$ java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -version
     76    1       3       java.lang.String::hashCode (55 bytes)
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x00007f5e56e7f97a, pid=16820, tid=140042649700096
#
# JRE version: Java(TM) SE Runtime Environment (8.0_31-b13) (build 1.8.0_31-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.31-b07 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [ld-linux-x86-64.so.2+0x1a97a]
  • For the record, Java 8 breaks things, unless you need Java 8 you may want Java 7. – Thomas Ward Feb 3 '15 at 1:42
  • 1
    It was working fine with the previous Java 8 release, and I do need 8 for work. But really, the hsdis library should probably be rebuilt at some time. It is close to 5 years old now. – JasonN Feb 3 '15 at 1:44
1

Oh no. Dumb answer.

When Ubuntu decided so nicely to upgrade my java version for me, it blew away my Oracle JDK and replaced it with Open JDK. The old hsdis plugin only works with Oracle JDK, as far as I remember.

The solution was to build a new hsdis that works with Open JDK. Thankfully somebody (actually a few people) have already done most of the work:

https://github.com/abak/openjdk-hsdis

All the build instructions are at the bottom.

(Yes, I feel kind of dumb answering my own question with a trivially easy answer. Instead of deleting the question, I'll let others decide. This showing up in search results would have made half my day more productive though.)

  • Another solution is to reinstall the Oracle JDK, which has some other advantages (such as Oracle-only tools like JMC). – BeeOnRope Dec 14 '16 at 21:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.